Google will be your best tool, your curiosity will be your greatest strength, github and stackoverflow will make your fame.
Don’t stay in your comfort zone for too long, just enough to master a language or framework. A programmer should be a padawan all his life.
Learn your data structures well, this will allow you to write code that runs faster than its shadow *-*
Document your code well, otherwise your code will have a very short life span : / Billions of lines of code die every day, let’s do something for them.
Don’t reinvent the wheel, otherwise you won’t do much more than a simple wheel. Add a motor to that wheel instead.
There are several:
- to be patient
- not to be discouraged
- there are no wrong questions
- ask for advice
- seek feedback on your work
- don’t reinvent the wheel
- KISS: Keep It Simple Stupid
- YAGNI: You Arent’t Gonna Need It
- Read (Clean Code, Pragmatic Programmer,…)
Programmer, you who begin…
Here is a small list
- Stay up to date on new technologies (do some research)
- Don’t stop learning after you graduate
- Learn to ask for help
- Understand why you are doing this or that
- As a junior, learn to assert yourself
That’s a good place to start 😀
It’s hard to identify “the best advice.” Here is what I think is good advice:
In computer science you have to practice and read as well. So learn the theory and put it into practice. Understand the algorithms, the fundamental principles of good object programming (S.O.L.I.D) and functional programming, information hiding, design patterns…
Oh, I forgot, learn to type without looking at the keyboard (touch typing) and master the development environment (keyboard shortcuts among others).
Write unit tests for all the code you write (in practice, aim for something like 90% of the code).
Every junior programmer must be careful of two things:
- Using technologies, especially those that are in trend, in order to impress people, this will disappoint you in the long run. To avoid this urge, you must forget everything you know as a programmer and put yourself in the place of the end user, this will show you the true picture of your system.
- Learning through ad-hoc tutorials, some tutorials give you the feeling that you are on the right path when in truth they are the fastest way to make you “stupid”. A better approach would be to read the documentation to understand the concepts and then go for the practice.
In addition to the other answers, I would add:
- Always work on your algorithms on paper
- Do not write a line of code until the problem is identified and a solution is found on paper
- You should always keep a global view of your project
- You should learn from now on one or more design patterns
- You should get used to always test your code, unit tests or other…, you will save a lot of time afterwards…debugging is more expensive for everyone
- Get used to always put comments in your code
- Learn to version your build and other releases
- Finally, last advice, don’t be satisfied with development only, you should be interested in system technologies…