My top recomentations for new programmers
Posted: February 7th, 2010 | Author: Edu | Filed under: Best-Practices, Code, Java, Tools | Tags: Best-Practices, Code, Java | 4 Comments »Unsorted list:
- If you use a versioning control system, spend some time learning its basic usage (checkout, checkin, update, diff, merge, …). If you don’t use it, go quickly to get one. Im currently using svn and git.
- Don’t be scared about refactoring your code.
- Write your own documentation. Document your work for your personal profit. While you are documenting and organizing you are thinking in your job by looking it from a different point of view. Think in documentation like in a software-piece, it must be useful and reusable.
- Constantly, try to improve your knowledge about every day tools usage by knowing its internals (keyboard shorcuts or processes) or just learning from your colleages (or Internet users) usage.
- Write automated tests and execute it. You can use continuous integration for doing the job. I like the Hudson CI server.
- Don’t be IDE-dependent for your compilation, use scripts or tools specifically designed for this task. Actually Maven will be my first choice because Java is my main plattform.
- Get feedback about your code. Show them into colleagues or use communities like StackOverflow.
- Learn what KISS and Convention over configuration means. Be aware about overengineering.
- Don’t try to write your own framework or libraries for later use. Learn writing it if you want, but use well-known community libraries or frameworks. I personally work mainly with Spring Framework and Apache commons.
- Backup your data. Use your own/preferred method. I personally like dropbox.
- Most important. Don’t try to acomplish all of this at same time. Just be patient and
Please, feedback
Ufff… Maven, Continuous Integration, Spring… A bit heavy for “new” programmers, don´t you think?
But I would recommend it to every “old” programmer who doesn´t already use it
Regards.
You forgot last one: Most important. Don’t try to acomplish all of this at same time.
IMHO this is a roadmap for new programmers who wants to be good programmers, something like a reading index. Most of these points are easy to acomplish (do backups, write/read stackoverflow, know what refactoring means) or prevents you against future problems (overengineering, dont do automatic tests, …).
Gracias Jorge,
Un placer leerte por aquí
Aún no tengo muy claro en qué idioma escribir. Mi inglés es un poco macarrónico.
Escribimos como quieras, no está mal tratar de expresarse en inglés de vez en cuando para practicar, que si no, no mejoramos. Y a mí también me hace falta… Después de intentarlo en inglés trataremos ahora ser más concisos en castellano
Tus recomendaciones me parecen muy buenas, pero no estoy de acuerdo con que algunas de ellas las puedan o deban seguir programadores nuevos, a mi entender, que están empezando su carrera de programador.
En concreto lo que te mencionaba, Maven, Integración Continua o Spring solucionan problemas avanzados de programación. Un programador nuevo creo que debería empezar por conocer la forma tradicional de hacer las cosas, para saber qué es lo que realmente solucionan estas herramientas y puedan apreciar lo tremendamente beneficiosas que son.
Claro, con esto tampoco quiero decir que si en un proyecto se está trabajando con una infraestructura que cuenta con ellas haya que dejar de usarlas para que lo recién llegados vean lo bueno que es lo que hay montado. Me refiero al caso del aprendizaje personal.
Un saludo.
Hey Jorge. Estoy de acuerdo en lo que comentas, pero una apreciación cuando hablo de “programador” no me refiero a una persona que aún no sepa “programar”. Hablo de una persona que ha cursado una carrera o un ciclo formativo de grado superior recien acabadito de incorporar al mundo laboral. Entiende que todo esos conocimientos (algoritmia, estructuras de datos, etc) ya viene con el título
Sobre Spring y Maven verás que sólo lo pongo como mis preferencias. Por ejemplo, cuando hablo de Maven la recomendación con la que te debes quedar tú como programador es que no debes depender del IDE para compilar/montar un proyecto. Puse Maven por un motivo, por ejemplo Ant está bien pero lo veo demasiado do-it-yourself Maven lo veo un poco más humano. Me parece que a Maven le puedes sacar provecho con poco que conozcas dónde debes poner cada cosa.
Quizá me quedó un poco escueta la entrada, le falta una intro y algo de pajilla de relleno pero se hace lo que se puede
Un saludo y gracias por comentar