Ask HN: Young developer looking for some guidance
Where I feel lost is in my spare time. I have a bookmarks folder with about 200 links to articles, resources, videos, etc. I'm incredibly overwhelmed with the amount of 'stuff' 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.
My short-term goal is to secure an internship/junior position in Europe (Poland) over my next summer break (I live in Aus).
I'm looking for some ideas on what to do in my spare time to make myself the most competitive for an entry-level position.
With only a few months of experience I haven't really been exposed to enough different areas of development to say I want to work in X, Y or Z.
I'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.
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?
I hope this wasn't too much of a ramble. Cheers
[+] [-] valarauca1|11 years ago|reply
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?
[+] [-] duketon|11 years ago|reply
This is something that I really have been trying to cover in my spare time. Unfortunately (in this regard) my degree is very 'industry-focused' and hence discards the more 'theoretically inclined' units. Something which I disagree with personally, however that's a discussion for a different time and place.
I'm currently undertaking Intro to Algs from MIT (6.006). With my given course load this is about as much as I can commit to this area at the moment. I however feel like I need to be doing more in this area. What would you recommend? I feel like getting results on Topcoder/et.al would provide a nice tangible learning experience. Would you agree with this or recommend some other activity/resource?
Cheers again.
[+] [-] mattm|11 years ago|reply
[+] [-] mkremer90|11 years ago|reply
[+] [-] hcarvalhoalves|11 years ago|reply
[+] [-] chris_va|11 years ago|reply
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|11 years ago|reply
They're the things, regardless of language or project you will need, but which are rarely taught properly.
[+] [-] duketon|11 years ago|reply
[+] [-] qzervaas|11 years ago|reply
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