
Ask HN: Resources to move from intermediate to advanced programmer? - ocebe
Today you can find a lot of information about how to start programming and tutorials for beginners. I find myself in the situation that I have 7 years of experience behind me and want to continue learning in a didactic way. I am a faithful reader of technical books where I learn a lot, but objectively, the way I have learned best has been following some online courses where teachers taught in a practical way and from the real world concepts such as hexagonal architecture, ddd, SOLID and a great repertoire of concepts that I consider important to be a good software professional.
That is why I ask you, what resource (book, course, youtube channel...) has been the most useful for you in your career?<p>Translated with www.DeepL.com&#x2F;Translator (free version)
======
huhnmonster
What has really helped me was Jon Gjengsets channel on YouTube. It is focused
in Rust and advanced topics. His streams tend to be pretty long but they can
easily be split up and watched over multiple days.
[https://m.youtube.com/c/JonGjengset](https://m.youtube.com/c/JonGjengset)

~~~
asdkhadsj
This looks interesting, thanks for the link! Any favorites of his content to
get started with?

~~~
huhnmonster
What I personally enjoyed were the videos about building a hash table and also
implementing Javas concurrent.hashmap in Rust as I am currently also playing
around with hash tables a fair bit. But pretty much everything on his channel
is absolutely worth watching, you will definitely learn something, no matter
what you watch.

------
taphangum
I am actually creating a resource for this exact use case. You are very right
that there is very little out there that specifically focuses on the more
intermediate to advanced developer.

A major issue that most of the developers like me and you within this
demographic face is that of most beginner-focused content not being fast
enough to learn with. This along with the fact that time is often a big issue
for us. I've had numerous times where I had to learn a new framework within a
1-2 week time span in order to plug some work gap or speed up a project, and
found no legitimate resources that could allow an intermediate developer like
me to learn faster.

This is why I am currently creating content targeted specifically at
intermediate to advanced developers and teaching new languages and frameworks
(using the 'constructivist' method) in a way that makes the process of
learning them much more efficient. In short, faster.

It's a little rough around the edges but you can check out the blog where I
share my current tutorials here:
[https://fromtoschool.com](https://fromtoschool.com).

To gain a better understanding of why the method of teaching that I've
described is more efficient than others for the intermediate developer, check
out this post: [https://fromtoschool.com/why-most-programming-tutorials-
are-...](https://fromtoschool.com/why-most-programming-tutorials-are-so-hard-
to-understand-and-a-solution-to-this-problem/)

------
giantg2
Your company sets the guidelines/expectations for what determines the
difference between intermediate and advanced programmers. You could meet the
definition of advanced programmer in one company and not another.

There are also variations in titles, both real differences and just
differences between what companies call you. Are you really a programmer? It
sound like you might be a software developer since you are learning concepts
and architecture.

So to get to that next level, you can either do it from your perspective or
the company's. Use the company's guidelines and get promoted. Or, improve
areas you see as an opportunity to improve.

My company sees me as an intermediate developer, but I have often been
mistaken as a senior developer or tech lead (not currently as I switched
roles/tech stack). So perspective is everything.

------
ineedausername
"Learn you a Haskell for great good" \- it will stretch your mind and shape-
expand the way you think about solving problems

"Java concurrency in practice" \- will give you deep insights into the "how"
and the "why", on this subject which is very important if you wanna call
yourself "advanced"

