DEV Community

Discussion on: Programming is Hard

Collapse
 
sirtimbly profile image
Tim Bendt

You did a great job of capturing specifics and generalities. What specialized roles have you had? Which order should each of these things be taught to new devs?

Collapse
 
somedood profile image
Basti Ortiz • Edited

I have never really been in a professional setting yet. I'm still doing my studies. The content of my article comes from experience and observations in the community if you're wondering.

And I think I could say that I have a specialized role in front-end and back-end web development, at least in my personal projects. No source of income as of yet since I'm learning the ropes, but I'll get there soon enough. 😁

For new developers, it's always best to work on your attitude first. It's hard to work with a stubborn person in a team. Once you're sure that you have a great attitude and an amazing willingness to cooperate with a team, I'd say they should learn the basics of a programming language first. Then, they apply their logic and newfound knowledge to create their own applications and algorithms. Once you have the hang around the workflow, it's time to organize and structure your app. For that, it's important to focus on readability, modularization, and maintainability. After that, I'd say they should learn how to read documentation next because that's a very important skill to have. Once achieving competence in the previous facets, I believe it's time to learn a bit about user experience and UI design. Finally, performance comes last because it's not really something a beginner should worry about for the time being. Performance and optimization are pretty advanced topics that require a substantial amount of knowledge about a programming language to be aware of all the tips, tricks, and hacks available to you.

So if I were to order each of these things, I'd say:

  1. Attitude and personality
  2. Logic and functionality
  3. Readability, modularization, and maintainability
  4. Learn how to read documentation
  5. User experience and basic UI design
  6. Performance and optimization