
Ask HN: Keep learning by doing or study CS theory? - soneca
Hi HN,<p>I am learning to code for the last 5 months. So far, I am mostly learning (Javascript) by doing, i.e. I have an idea for a small project, choose a tech I want to learn more and build the project.<p>Here are the projects I did so far: https:&#x2F;&#x2F;rodrigo-pontes.glitch.me&#x2F;<p>I have started to look for software development jobs now, so my doubt is:<p>Should I keep creating these projects in order to learn software development, or should I start to learn more profoundly about more theoric concepts like those taught at CS classes that are available online?<p>In case you think I should go to the CS theory path, which topics should I focus my learning? Any specific resource you recommend?<p>(if it matters, I want to optimize my education to increase my chances to get a good software development job).<p>Thanks!
======
bcbrown
I would do both, but prioritize learning by doing. For theory, focus on what
is commonly tested in interviews, namely algorithms and data structures.

I would also suggest auditing an online course on operating systems. That
shouldn't take much effort (compared to actually doing the associated homework
etc), but gives context, a good overview of a lot of fundamental concepts, and
probably enough CS trivia to be useful in an interview.

Once you have a job, then I'd focus on learning theory. You'll be learning by
doing all day in the job, so there's less benefit from side projects than
continuing to learn theory, at least until you've covered everything in the
undergrad curriculum. You can look at the degree requirements from a couple of
the big schools, choose a list of topics, then pick one or two sources for
each topic. I used a mix of online courses and textbooks.

~~~
XtalJ
I totally agree! That is how I did it :-)

------
orange_county
Both would be great but there is only a limited amount of time in a day.

The fastest way to get into the industry is doing projects. However I would
take the specific approach that some other member posted here. Find local
companies near your area, research their product and build a programming
project that is related to their business. Then email them directly to a few
key players of the company to showcase what you did.

After you get the job, you can start focusing on CS theory. There are tons of
materials online for CS theory such as Coursera, Udacity and edx.

Good luck!

------
edimaudo
Start by doing, then if you can't do it then learn the theory. Do again to
make sure you .now understand the theory. COntinue until mastery is confirmed.

------
lalwanivikas
Making projects is the way to go since you are trying to get into frontend or
full-stack positions. Nothing beats a good portfolio[0].

[0] [https://firstdevjob.com/posts/why-build-
portfolio](https://firstdevjob.com/posts/why-build-portfolio)

------
ud0
Looked at your side projects, cool. You should take sometime to polish the UI.
Look at examples from dribble. You UI may/may not stop you from getting a good
job if it looks too amateurish.

------
kenshi
If you want a good software development job you need to do both.

