Ask HN: How can a programmer optimize learning after getting a job?
5 comments
Right off the bat, with honesty based on what I have lived through already, people who are smart and experienced enough to offer mentorship usually find "pupils" who have already reached a certain level on their own. So trying to surround yourself with "the right people" before gaining enough experience to offer insightful feedback to your peers is truly like expecting a venture capitalist to invest in your business when you possess no real business plan to maximize their return over investment.
With that said, keep yourself efficiently informed. Read quick bits of information to maintain a broad image of what's trending in the fields you are interested in. Twitter, Quora, LinkedIn articles are all great places to get just enough to keep yourself up-to-date.
Find what makes you truly passionate. At any given time there will be 20 or 30 emerging technologies which will claim and convince many that they're the next big thing. So instead of trying to bloat-up your resume with every trendy set of acronyms you can find, focus on the few that really resonate with your programming personality. This will increase the quality of the learning you are able to squeeze between (or even during) office hours.
In that same line of thought, keep your peers, and especially your superiors, in the loop of what makes you passionate. Once you find the next big thing which interests you, make a presentation and share the knowledge. This will not only guarantee that you'll place yourself in a spot where opportunities will multiply to work with the tools you like best, but, to make sure you're truly prepared for thorough questioning, it'll also force you to truly sharpen your knowledge and go that extra mile when digging through the docs and teaching yourself.
With that said, keep yourself efficiently informed. Read quick bits of information to maintain a broad image of what's trending in the fields you are interested in. Twitter, Quora, LinkedIn articles are all great places to get just enough to keep yourself up-to-date.
Find what makes you truly passionate. At any given time there will be 20 or 30 emerging technologies which will claim and convince many that they're the next big thing. So instead of trying to bloat-up your resume with every trendy set of acronyms you can find, focus on the few that really resonate with your programming personality. This will increase the quality of the learning you are able to squeeze between (or even during) office hours.
In that same line of thought, keep your peers, and especially your superiors, in the loop of what makes you passionate. Once you find the next big thing which interests you, make a presentation and share the knowledge. This will not only guarantee that you'll place yourself in a spot where opportunities will multiply to work with the tools you like best, but, to make sure you're truly prepared for thorough questioning, it'll also force you to truly sharpen your knowledge and go that extra mile when digging through the docs and teaching yourself.
* I sense that what you work on has a lot to do with how much you learn. If true, how do you end up in an environment where you're learning a lot?
Ask during your interview! If a company has a culture of learning, they'll usually be very upfront about it. * I sense that who you're around has a lot to do with how much you learn (because of guidance and mentorship). How do you end up in an environment where you're surrounded by the right people?
Again, you'll have to scope this out during your interview. It's definitely true that you need good teammates in addition to a culture supportive of learning. * Is it a good idea for more experienced programmers to still take classes? Read books? Etc.
Definitely. I find that I read more programming books now than when I started learning. The big difference is that I'm reading to learn about new concepts and ideas, rather than "how does this piece of syntax work." * What are the skills worth having? Is it worth learning all the different frameworks? Being familiar with different levels of abstraction (hardware, architecture, systems level, scripting level...)? Drilling math and logic?
There's value in everything you listed, but becoming proficient in all of them is a life-long task. Find what interests you and focus on it! In general, how can a programmer learn as much as possible?
The key is to spend every waking minute programming. And a related but tangential question, if you're a good programmer, how did you get good?
Wrote a lot of code, and constantly critiqued everything from the code I wrote to the tools and processes I used.All good advice.
> Find what interests you and focus on it!
There are different ways to interpret this. I think most people think of programming related technologies.
But remember, software runs almost everything. Which means that, with your programming skills, you can work in almost any industry that uses software.
So besides thinking about what about programming interests you, think about what in the world interests you. I've been fortunate to work in: shipbuilding, airliner manufacturing, , telecommunications, finance, web development and medical device manufacturing.
Besides the programming technologies, the subject matter is usually at least as interesting, if not more.
It was really cool walking under 747s to get to my office.
> Find what interests you and focus on it!
There are different ways to interpret this. I think most people think of programming related technologies.
But remember, software runs almost everything. Which means that, with your programming skills, you can work in almost any industry that uses software.
So besides thinking about what about programming interests you, think about what in the world interests you. I've been fortunate to work in: shipbuilding, airliner manufacturing, , telecommunications, finance, web development and medical device manufacturing.
Besides the programming technologies, the subject matter is usually at least as interesting, if not more.
It was really cool walking under 747s to get to my office.
Learning after school is self-study. Don't expect anyone (even a mentor) to teach you what you need to know.
Every job comes with different challenges and requires learning new things. You'll spend the first few years getting comfortable with the technical side of things. When the business side becomes a more important/bigger challenge than the programming side; that's when you know you're a developer.
My advice is this: identify role models in the fields/technologies you are interested in and follow them. Try to find someone who is more passionate about what you do than you (i.e. someone doing the same things as you but is better than you) and learn all you can.
One of the books I can highly recommend is Evan's Domain Driven Design, it makes it easier to reason abstractly about business.
Every job comes with different challenges and requires learning new things. You'll spend the first few years getting comfortable with the technical side of things. When the business side becomes a more important/bigger challenge than the programming side; that's when you know you're a developer.
My advice is this: identify role models in the fields/technologies you are interested in and follow them. Try to find someone who is more passionate about what you do than you (i.e. someone doing the same things as you but is better than you) and learn all you can.
One of the books I can highly recommend is Evan's Domain Driven Design, it makes it easier to reason abstractly about business.
[deleted]
When you're in school, the answer to "how do you learn as much as possible" is pretty straightforward - study hard, study smart, take hard classes etc. But I sense that the answer becomes different once you're not a student anymore.
* I sense that what you work on has a lot to do with how much you learn. If true, how do you end up in an environment where you're learning a lot?
* I sense that who you're around has a lot to do with how much you learn (because of guidance and mentorship). How do you end up in an environment where you're surrounded by the right people?
* Is it a good idea for more experienced programmers to still take classes? Read books? Etc.
* What are the skills worth having? Is it worth learning all the different frameworks? Being familiar with different levels of abstraction (hardware, architecture, systems level, scripting level...)? Drilling math and logic?
* Are there other disciplines that are particularly worth learning? I know PG talks about Art vs. Programming.
In general, how can a programmer learn as much as possible? And a related but tangential question, if you're a good programmer, how did you get good?