¿Qué herramientas / gadgets utilizas para ser un ingeniero de software productivo?

No soy ingeniero de software, pero escribo código en un entorno de investigación científica.

Mi herramienta favorita de todas tiene que ser Python . Con NumPy y SciPy , no podría hackear un prototipo más rápido de lo que ya puedo. La sintaxis es increíblemente intuitiva, la documentación es excelente en Internet, la cantidad de bibliotecas para hacer cosas diferentes está fuera de los gráficos, y es rápida. Demonios, si quisiera probar algunos puertos paralelos de los algoritmos, sería igual de simple (aunque es cierto que todavía no he usado ninguna biblioteca paralela). Creo que incluso hay algunas implementaciones decentes de CUDA.

Otra herramienta que está a la altura es Emacs . No soy un usuario avanzado de ninguna manera, y todavía estoy descubriendo mucho al respecto, pero hombre, ¿me siento productivo? Cuando usaba VIM, siempre odiaba tener que cambiar de modo para hacer cosas. Con Emacs mantienes tus manos en la posición predeterminada del teclado en todo momento, y simplemente mantienes presionado Crtl o Alt / Meta y haces tus cosas. El mini buffer de línea de comando en la parte inferior es fantástico, no es especialmente sorprendente ya que estoy enamorado del shell Bash.

Finalmente, una cosa por la que tengo que estar extremadamente agradecido es Valgrind . Cuando intento optimizar el código, esto es lo primero que uso para perfilar mi código. No, no es perfecto, y probablemente ni siquiera soy consciente de todas sus trampas, pero cuando funciona funciona muy bien. El único inconveniente es que se necesitan entre 10 y 50 veces el tiempo de ejecución normal para realizar los diagnósticos, pero a veces en el software numérico estás haciendo una rutina iterativa, y puedes reducir tus tiempos y pruebas para que no sea un gran problema. Estaba navegando por StackOverflow para encontrar algunas herramientas para la creación de perfiles de código, descubrí Valgrind y lo estaba usando el mismo día, por lo que fue muy fácil de usar.

Hablando de eso , StackOverflow tiene que ser una de las mejores comunidades de codificación en línea que hay. En serio, no puedo decir cuánto he aprendido de los gurús que nos honran con su presencia allí. Y cuando no puedo encontrar mi pregunta respondida por publicaciones existentes, puedo publicar la mía y obtener respuestas y comentarios en cuestión de horas. Definitivamente muy útil.

Y si vamos a hablar sobre recursos, creo que debo mencionar mi copia de The C Programming Language de Kernighan & Ritchie. Uso este libro casi todos los días, junto con The Complete C ++ Reference de Schildt. Estos son dos libros que realmente aprecio, y aunque la referencia de C ++ podría ser reemplazada por la búsqueda en línea, es muy bueno tener una cosa organizada, completa y tangible frente a ti. K&R sin embargo … eso no puede ser reemplazado. Es increíble como primera lectura y como referencia, una herramienta imprescindible para cualquiera que haga cosas C-ish.

encuentre un amigo que pueda ayudarlo a revisar su diseño / idea antes de comenzar a escribir cualquier línea de código; si codifica solo y no puede encontrar uno, consiga un pato de goma ( http://en.wikipedia.org/wiki / Rub …)

no reinvente las ruedas : busque en Google / StackOverflow / Github las soluciones existentes y las bibliotecas de código abierto antes de comenzar a implementarlo por su cuenta. Incluso si aún tiene que hacerlo, estudiar el código de otras personas le dará muchas ideas y evitará posibles dificultades.

conozca su oficio : capacítese como maestro de las herramientas de desarrollo que utiliza todos los días. Para mí, son git / xcode / bash, etc. Por ejemplo, si aprende un atajo de teclado que le ahorrará 2 segundos cada vez, si lo usa cientos de veces al día, 5 días a la semana, sería ser MUCHO

Automatizar sus tareas de rutina : aprenda un lenguaje de script bash / python / ruby ​​/ perl, etc. y úselo para automatizar sus tareas de rutina tanto como sea posible. Por ejemplo, tengo un script de compilación que puede automatizar casi todo, desde el código fuente de pago, compilación, creación, instalación y publicación. Ya me ha ahorrado al menos mil horas y sigo contando. (¡100 veces el retorno de la inversión!)

http://www.lifehack.org/527184/6

Definitivamente estás luchando cuando se trata de tu productividad diaria. Está bien, todos tenemos ese tipo de problema. El impulso para convertirse en una persona altamente productiva no se logra fácilmente la mayoría de los días, pero este tipo de dilema se puede curar. Junto con la determinación, una variedad de herramientas diferentes puede ayudarlo a obtener su rutina diaria de productividad y alcanzar su cuota todos los días.

Aquí hay una lista de herramientas imprescindibles:

  • Trello / Basecamp : la productividad se ve muy afectada por el hecho de si eres un adicto al trabajo organizado o no. Organizar sus tareas diarias lo ayuda a alcanzar su cuota diaria de productividad y a ser efectivo cuando se trata de administrar su tiempo. Trello tiene un colorido etiquetado y tableros de columnas perfectos para asignar estados de tareas. También permite la comunicación dentro del equipo mientras se colabora. Basecamp también incluye la función principal, como listas de verificación, comunicación en el equipo, configuración de plazos y envío de notificaciones.
  • Evernote / Bear : nunca se sabe cuándo surge una buena idea, por eso tener una buena aplicación para tomar notas es muy útil. Tomar notas para su próximo informe o simplemente anotar ideas para su negocio es importante, y es aún más importante almacenarlas y organizarlas de manera segura para su uso futuro.
  • Zapier / IFTTT : son dos aplicaciones que se utilizan para automatizar procesos. Si estás loco con los procesos, automatizarlos es imprescindible para ahorrar tiempo. Zapier es una plataforma de automatización completa que puede integrarse en más de 700 aplicaciones juntas, dependiendo de cuán complejos sean sus procesos. Si bien IFTTT es imprescindible para principiantes y es compatible con dispositivos móviles y solo tiene procesos simples en su lugar.
  • Process Street : es una API que puede albergar toda la documentación de su proceso. También funciona como una lista de verificación para asegurarse de que no se dejen pasos para ninguno de sus procesos. También puede alojar todos sus flujos de trabajo simples dentro de esta herramienta.
  • Pomello : es un dispositivo de seguimiento del tiempo que se integra con Trello. Es fácil para nosotros gastar demasiado tiempo y perdernos en nuestras tareas, esta aplicación te ayuda a concentrarte en lo que estás haciendo dentro de un cierto período de tiempo para ayudarte a hacer el trabajo.
  • Google Calendar : su tiempo es importante, y tener un horario establecido para realizar todas las tareas que necesita realizar es muy útil para mantener su productividad alta y mantener su día ordenado. Esta aplicación se integra fácilmente y envía una notificación a su bandeja de entrada para recordarle sus próximos horarios e itinerarios diarios.
  • Extensor de WiFi : todas las herramientas mencionadas anteriormente están basadas en Internet. Sin una conexión estable, puede continuar y continuar con su progreso y lograr poco o nada en absoluto. Los extensores de WiFi son muy útiles para fortalecer su conexión a Internet para que pueda continuar con su trabajo donde quiera que esté.
  • Discos duros : aunque ahora nos inclinamos más hacia el almacenamiento basado en la nube para todos nuestros archivos importantes, tener un disco duro aún ofrece comodidad cuando se encuentra en un lugar donde no hay conexión WiFi y no puede acceder a sus archivos de Internet. Además, nunca puede tener demasiadas copias de seguridad cuando se trata de sus archivos importantes, ¿verdad?

http://www.lifehack.org/527184/6

Creo que, sobre todo, ya se ha mencionado. También usamos:

  • http://www.mindmeister.com : para la lluvia de ideas. También es muy bueno para ilustrar
  • http://rizzoma.com/ – para discusión y redacción de documentos. Lo mejor es que ayuda a hacer las especificaciones de la conversación.

Recientemente comencé a usar RescueTime y se lo recomiendo a alguien que se tome muy en serio su productividad.

Por qué ?

1. Gran análisis

Puede realizar un seguimiento de toda su actividad diaria en su computadora portátil / móvil / tableta (sin embargo, puede optar por excluir las cosas que no desea que se rastreen). Una vez que los datos están disponibles, el tiempo de rescate le brinda un análisis de su tiempo. Puede ver una descripción general de sus actividades productivas y actividades de distracción. Finalmente puedes cortar cosas que distraen mucho tu vida. También puede agregar tiempo fuera de línea como las cosas que no se pueden rastrear en su computadora portátil / teléfonos móviles.


Aquí hay una captura de pantalla mía, aún puede hacer un análisis en profundidad de cada categoría. Añadir subcategorías y más! Estos chicos definitivamente piensan mucho mientras construyen esta aplicación.

2. Objetivos

Puede establecer objetivos y son específicos del tiempo, por ejemplo, uno de mis objetivos dice “Pasar menos de 1 hora al día en Quora”. Y la sensación que tienes cuando puedes ver que alcanzas tus metas es increíble 🙂

Aunque necesito mejorar para alcanzar mis metas goals

3. Modo de enfoque

Esta característica me gusta mucho, si pasas mucho tiempo distrayendo actividades. ¡Puede ingresar al modo de enfoque que bloquea todos sus sitios web que distraen durante un período de tiempo específico!

Y hay muchas más funciones.

Software de gestión del tiempo para mantenerse productivo y feliz en el lugar de trabajo moderno

¡Realmente estuve buscando un software de gran productividad durante mucho tiempo y esto realmente me impactó! Espero que esto ayude…

Mis herramientas favoritas:

Rubí para el desarrollo
¡Sublime Text para editar cualquier archivo de texto!
Pepino / RSpec para diseño y BDD / TDD
Git
El foco de atención de Mac
Guardia
Producteev para rastrear todas las tareas
2-3 monitores

Hay principios que creo que son muy importantes para los programadores. No son herramientas per se pero son muy relevantes para la productividad:
– automatiza cualquier cosa que tengas que hacer con frecuencia
– familiarícese con la interfaz de línea de comandos, es la interfaz más rápida y fácil de automatizar
– descubre el mejor momento y entorno que te lleva ‘a la zona’. Auriculares, tipo de música, rayos, hora del día, posición sentada, temperatura. Etc.
– Diseñe un flujo de trabajo óptimo que funcione para usted.
– construir una biblioteca de códigos de fragmentos
– documentar / registrar tareas comunes que realiza para que no tenga que repensarlas cada vez que las realiza – configuración del proyecto, qué biblioteca usar para qué propósito, etc.

Un clásico que recomendaría personalmente es el libro “Programador Productivo”

Soy principalmente un desarrollador web, aunque también incursiono en el desarrollo de escritorio y Android.

Como con todos los demás aquí, uso StackOverflow ( http://www.stackoverflow.com ) para encontrar respuestas a preguntas difíciles de programación.

Uso Asana ( http://www.asana.com ) para rastrear mis proyectos y tareas y organizar mis tareas en sprints de 1 semana.

Uso BitBucket ( http://www.bitbucket.org ) para alojar mis repositorios de control de fuente Git para mis proyectos personales. Git es un increíble sistema de control de fuente, y BitBucket es gratuito para hasta 5 usuarios.

Mi tableta Android (actualmente una Asus TF300T Transformer Pad) es realmente buena para leer libros electrónicos de programación sin DRM que compro de compañías como O’Reilly ( http://oreilly.com/ ) y APress ( http: //www.apress. com ).

Pocket ( http://www.getpocket.com ) también es una herramienta súper útil para guardar publicaciones de blog y tutoriales relacionados con la programación y leerlos en mi tableta más tarde.

Google Reader ( http://www.google.com/reader ) es útil para suscribirse a los canales RSS de los blogs de mis desarrolladores favoritos.

Además, no es realmente una “herramienta” en el sentido estricto de la palabra, pero los grupos de usuarios locales son muy útiles. Por lo general, ofrecen charlas y seminarios gratuitos sobre temas relevantes, y también una gran oportunidad para establecer contactos. Uno de los más grandes en mi área es el Grupo de Desarrolladores .NET del Área de los Grandes Lagos de Michigan ( http://www.migang.org )

Ayuda para el pensamiento : una pizarra grande y de alta calidad. Bolígrafos de varios colores. Mejor si se coloca para que pueda hablar mientras está en ello.
Las herramientas opcionales que interactúan bien con las pizarras blancas son notas adhesivas e imanes (para tableros de soporte).

Ayudas de memoria :
Tengo un sistema de 2 blocs de notas grandes + notas adhesivas.
Una almohadilla se coloca en una pared al alcance, eso mantiene mi lista de tareas a largo plazo, cosas que quiero hacer, pero no ahora. Esta libreta está limitada a una sola página a la vez: cuando me quedo sin espacio, tacho algunas cosas y copio el resto a la página siguiente.
Mantengo el segundo teclado muy cerca; a menudo lo uso como un mouse pad y sostengo el lápiz mientras escribo y escribo. Las cosas a corto plazo van allí (como recordar agregar una prueba importante a la clase en la que estoy).

Una buena herramienta de gestión de tareas es esencial; Asegúrese de usarlo para documentar todo lo que necesita recordar.

Recordatorios de calendario.

Ayuda general de productividad :
Estas 3 reglas:
1. Cualquier cosa puede ser automatizada
2. El trabajo repetitivo debe ser eliminado
3. Puedo construir mis propias herramientas.
Si los tiene, probablemente descubrirá todas las otras herramientas para usted.

Papel y lápiz … algo que no puedes borrar. UltraEdit. Y el archivo de correo electrónico / MI, guarde todo para tener un registro escrito. De hecho, insista en conversaciones de mensajería instantánea / correo electrónico en lugar de hablar, para que tenga un registro.

Echa un vistazo a Freeter. Es una herramienta de productividad que le permite recopilar todo lo que necesita para trabajar en su (s) proyecto (s) en un solo lugar. Todo se agrupa por proyectos y flujos de trabajo, y se puede acceder en un segundo con una simple tecla Ctrl (o Cmd ) + Shift + F. Le ayuda a mantenerse enfocado en un flujo de trabajo específico y cambiar fácilmente entre ellos.

Aquí hay un panel de ejemplo para darle algunas ideas de cómo se puede usar:

Freeter tiene múltiples widgets que le permiten incrustar varias cosas útiles en sus paneles: botones para abrir archivos / carpetas de proyectos con herramientas de edición, botones para ejecutar líneas de comando, exploradores de archivos, editores de notas, listas de tareas, sus aplicaciones / herramientas web favoritas. Puede obtener algunas ideas sobre cómo incorporar las características de las aplicaciones web aquí: incrustar aplicaciones web.

Disponible para Windows, Mac OS y Linux.

En lo que respecta a las pruebas, estoy usando Paper & Pen con frecuencia y principalmente. Me ayuda a anotar mi idea en el acto.

Notas adhesivas, otra cosa más utilizada por mí durante las pruebas.

Aparte de eso, Excel y Word están en el tercer número.

Más lista incluye:
Búsqueda de Google
MS Paint
Herramientas de corte
Bloc
IE 8, 9

Esta es la lista general, no incluye ninguna herramienta específica relacionada con la tecnología.

Fichas y bolígrafos de colores. Cuando me distrae una idea o un “oh, también tengo que …”, lo apunto en la tarjeta que siempre se encuentra junto a mi teclado y vuelvo a lo que estaba haciendo.

Como SE, usted tiene acceso constante a Internet, lo que puede ser una distracción. Use el complemento de Chrome StayFocusd para controlar sus distracciones. Siempre puedes evitarlo, pero esto te ayuda a controlarte.

Desbordamiento de pila
Me ha sacado de situaciones difíciles innumerables veces.

  1. Sublime Text 2: editor invaluable con características realmente agradables.
  2. Pepino: para apaciguar a los no técnicos: funciona muy bien cuando se usa lápiz y papel.
  3. Rspec: Pruebas
  4. iTerm: mi terminal preferida
  5. Git: porque tendrías que estar loco para no usar repos
  6. Cafetera: ¿Cómo es que esto no está en la lista de todos?

Aquí está mi lista:

  • Google
  • Cromo
  • Gorjeo
  • Quora
  • Desbordamiento de pila
  • Foros de Ububtu
  • Github
  • Nettuts
  • My Galaxy Tab
  • Un editor de texto rápido e inteligente: Sublime Text 2 para mí.
  • Youtube
  • Smashing Magazine (excelente lugar para que absorba la creatividad)
  • Línea de comando de trucos
  • Foros principales del codificador
  • Blogs de ingenieros de software exitosos

Las siguientes herramientas que uso para estar en Sharpe edge:

  1. Perl
  2. masilla
  3. Google
  4. Chrome (navegador)
  5. Outlook Express
  6. Incomparablemente
  7. Quora
  8. LinkedIn
  9. Evernote
  10. AutoHotkey
  11. frase expresa
  12. Comunicador de Microsoft
  13. mi dispositivo android
  14. MIT open ware ware
  15. videos nptel
  16. TED
  17. Lector de Google

Google docs
Jira
Crisol
Confluencia
EverNote
Papel y bolígrafo
Eclipse

Aquí está mi lista: Primero es Google que Twitter, Quora, Youtube, CodeProject, CodeGuru, foros de programación, Microsoft .net y el último es Programmers Heaven.