
Ask HN: Young developer looking for some guidance - duketon
I&#x27;m currently in my first year of a two year masters degree in software engineering. I&#x27;m comfortable with the coursework and am really enjoying it.<p>Where I feel lost is in my spare time. I have a bookmarks folder with about 200 links to articles, resources, videos, etc. I&#x27;m incredibly overwhelmed with the amount of &#x27;stuff&#x27; out there; languages, frameworks, tools, and so on. I feel a bit lost every time I sit down at my laptop and try to do something productive.<p>My short-term goal is to secure an internship&#x2F;junior position in Europe (Poland) over my next summer break (I live in Aus).<p>I&#x27;m looking for some ideas on what to do in my spare time to make myself the most competitive for an entry-level position.<p>With only a few months of experience I haven&#x27;t really been exposed to enough different areas of development to say I want to work in X, Y or Z.<p>I&#x27;m suffering from the fact that pretty much everything interests me. Web dev, data analysis, machine learning, databases, and so on. I think that for me I need someone to pigeon-hole me into an area so that I can self-study in depth and get an internship in this area.<p>Would some more experienced developers offer some advice? Where did you start? Where would you have liked to start? What are some good ways to kick-off a successful development career?<p>I hope this wasn&#x27;t too much of a ramble. Cheers
======
valarauca1
Algorithms.

Yes boring old pure data and programming algorithms. This skill is more useful
then learning a dozen frameworks. In interviews you'll have people asking you
dozens of questions that will all boil down to, "Do you know algorithms?" And
not to mention that toolset is applicable over nearly every development
domain. You'll very very rarely find software teams who will scoff at somebody
who knows their algorithms. You'll rarely find times in your developer life
time where you'll think, "Jeeze I wish I didn't know how trees, bloom filters,
hash based indexing, etc. works this has been such a determent to my career!"

Most fields of development end up needing to use algorithms at some time or
another. How does your data analysis work, How is machine learning done? What
are databases doing to make 10,000 queries per second? What are the pros and
cons? Are you entering data in inefficient ways to slow this down? Are you or
the tool the problem?

When you learn algorithms you can answer these questions. Then apply those
answers to your job! Impress your friends and enemies! Demonstrate counting
sort running circles around their quick sort implementations because your data
is highly specialized.

Yes it isn't sexy. Its not a buzz word. Its horn rim glasses, dnd nerd boring
stuff. But at the same time it isn't. Rock-stars learn music theory one way or
another, how are you gonna audition for the rolling stones if you don't know
what an G cord is?

~~~
mattm
Any recommended books or resources? I'm out of university but feel I need to
brush up on algorithms.

~~~
radnam
You should also try going through MIT's online course on algorithms based on
CLR: [http://ocw.mit.edu/courses/electrical-engineering-and-
comput...](http://ocw.mit.edu/courses/electrical-engineering-and-computer-
science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/)

~~~
qohen
FYI, if you download the course materials, there are transcripts of the video
lectures included, so you can get a good feel for what the lectures are like
and, maybe, not have to spend over an hour per lecture. You can download the
course materials here:

[http://ocw.mit.edu/ans15436/ZipForEndUsers/6/6-046j-fall-200...](http://ocw.mit.edu/ans15436/ZipForEndUsers/6/6-046j-fall-2005/6-046j-fall-2005.zip)

Note: you may still want/need to watch them since there's notation that is
likely easier to read off a blackboard vs reading a transcript of someone
describing it, e.g.

 _" The conclusion is the same thing, but summing over all k. So, k equals one
to n, alpha_k _ x_k. Take f of that versus taking the sum of the alphas times
the f's. k equals one to n. So, the definition of convexity is exactly that
statement, but where n equals two." _

------
mkremer90
Instead of thinking about the area of study (web dev, data, etc), how about
you look at the openings in Poland to see which companies are hiring, and for
what languages. Then pick a few of those companies that you think are cool,
and concentrate on the technologies that they are using. That way instead of
shooting in the dark, your aspiring to fulfill a need in your community.

~~~
hcarvalhoalves
Spot on.

------
chris_va
Experience is significantly more valuable than reading 200 articles (and as a
result, I am inclined to view CS grad school as a waste for many people).

Build stuff. It doesn't really matter what it is, there is enough overlap
between all of the disciplines to compensate.

Having said that, and as was mentioned already, Algorithms is probably the one
topic that truly differentiates people.

------
doobiaus
Programming is the 'easy' part. To be employable learn the rest of the
process, which is typically language agnostic: Dev Processes & workflow
(scrum), DVCS (git), TDD, CI/CD (Travis/Jenkins/TeamCity), devops (puppet).
etc

They're the things, regardless of language or project you will need, but which
are rarely taught properly.

~~~
duketon
This is good to hear. I'm currently attending a program through a software
consultancy here in my city in which we create a project in teams of devs/BA's
using Agile/Scrum, a heavy git focus, continuous integration, and testing
frameworks. I'm learning heaps (things we don't really cover at uni) and hope
it will help in internships/junior positions.

------
qzervaas
You need have a specific target, otherwise you're just shooting in the dark
and you'll get bored easily.

But if you say, "I want to make a web site that does ABC", or "I want to make
an app that does XYZ", you won't just be - as mkremer90 said - shooting in the
dark at a whole bunch of different technologies

