DEV Community

loading...

Learning to program well instead of just learning new skills

rjacobson16 profile image Rachel Jacobson ・1 min read

I see a lot of posts around here that tell you to level up your frontend dev career by learning webpack or something. I'd like to level up my frontend dev career by figuring out how to determine the most logical and sustainable path to build in a new feature or refactor some code in a complex app the first time around. In other words, I'd like to advance my frontend dev career by getting good at writing the code. Are there classes for that that focus on frontend and are about real architecture and not building a react to-do app?

Discussion

pic
Editor guide
Collapse
saf94 profile image
Saf Hayat

Getting good at writing code requires understanding a few things

  • what are different problems that arise with writing code / building applications
  • what are the different approaches to solving those problems
  • what are the pros and cons of the approaches
  • which is the best approach for the situation

The reality is 99% of people learn how to do this in a real life setting because it’s hard to fake the types of issues you face in a class / course setting. Most architecture is based on how to handle complex or large applications which are built over years by many developers. Even if someone could make a good fake app to teach it, you need to see things in multiple contexts in order to really understand (what’s known as transfer learning, eg recognise features/concepts in different contexts)

In summary, it’s pretty hard to teach in a course but I guess maybe not impossible. The level of teaching in the coding community is not that great imo, not very aligned with the actual journey of a learner as you’ve identified so I’d be surprised if a good course that did this did exist.

My advice is try to get as much experience as possible of different real code bases and understand the design / architecture decisions they made and why they made those and see the patterns between them

Collapse
juanfrank77 profile image
Juan F Gonzalez

It's something I came across a year and a half ago. There's a lot of content and courses that focuses on beginners and people just learning to code, but for others who just want to level up their skill and leave the 'intermediate purgatory' it's much harder.

I did found some courses that assume the person already knows how to code and has notions of programming in general. Those are the ones who give you some gold nuggets and insights that only come with experience.

Assuming that you're learning React and want to know more app architecture instead of 'cool-looking projects for your portfolio' I can recommend you just a few.

  • Pluralsight - Reactjs Advanced
  • Udemy - Modern React with Redux (and pretty much every course from Stephen Grider)
  • Udemy - The Advanced Web Developer Bootcamp (this covers muuuch more than just React stuff).

Those are my 2 cents, hope it helps.

Collapse
eruizdechavez profile image
Erick Ruiz de Chavez

Not long ago, while recording one episode of my podcast (currently in hiatus) a guest shared this link and I ❤️ it, mainly because of what you mention, it is not the classic build a To Do with X tutorial, but instead a roadmap with recommendations on what to learn and when to do it, and as a bonus, it has some links to other learning resources.

roadmap.sh/frontend

And (shameless plug 🙈) If you would like to know what I think about those To Do tutorials I recently wrote a blog post about it

Collapse
jmr_code_social profile image
Jorge Marquez

My suggestion is, instead of learning new things, skill up with what you already know.
You can always skill up reading and understanding the official documentation, practice what you read and focus what it can be done with each example you see out there.

Happy Coding!!!

Collapse
pomfrit123 profile image
***

There must be somewhere, Me personally I read books

Collapse
rjacobson16 profile image
Rachel Jacobson Author

Your favorites? I read pragmatic programmer and wasn't as enamored as some other people. Javascript books seem to focus on the guts of the language and not best practices of building stuff with JS.

Collapse
pomfrit123 profile image
***

I have not read a book on architecture yet. Are you using framework for JS?

Collapse
xanderyzwich profile image
Corey McCarty

Code review is the thing that you are really looking for. Open source contributions can be good for this. You can actually read through the PR/MR conversations that are out there without even needing to be a part of it, but if you are a part of it then you get feedback on what you are doing. Watching live code streams can also help you to understand the process that's going on in someone's head when they code.

Collapse
viniciusrio profile image
Vinicius Rio

I am Brazilian and I guess for learn programming with good practices is hard! You need to learn documentation, code reading forums, handling errors, writing ugly code to learn what is a beautiful code. In my country, there are courses which cost U$ 372.37 or R$ 2.000 and I do not understand what makes a person buy it. All content is chewed and you 'learn' faster. There is no shortcut to master in programming. In there are courses you stand dependence from the company.

I work and study programming since 2018 and I considered myself an eternal apprentice that wishes to turn a master!

Collapse
alexandrudanpop profile image
Alexandru-Dan Pop

In my experience finding a good mentor or working in well architected projects are the things that can help you with that.

I also written about this here:

Collapse
schafer14 profile image
Banner Schafer

Your question touches on the fact that you can improve as a developer in multiple dimensions. Learning new technologies is certainly valuable, but there are other directions to improve.
Regardless of which direction you are interested in improving on I recommend solving a problem (any problem) using a different solution each time. For example, I write similar chess applications multiple times. With each solution I gain a better understanding of the underlying architecture the solution relies on. I find writing in different languages and using different paradigms super beneficial.
As you increase the number of solution patterns you are familiar with you will realise that most problems have a wide range of viable solutions.

For me personally, the most valuable JS knowledge I have came from a course that focused on SML and Racket; the most valuable React knowledge I have came from building a chess app in Elm.

Collapse
detzam profile image
webstuff

Sadly, all that i know is.. you learn on the job and reading on different subjects, but you need to know how to read stuff