Author here. Long time reader, first time writer. Just wanted to say thanks to HN community for such an enlightening discussion here. Helped me to grow and learn especially at times when there were no mentors around.
Unless there's some barrier to entry it would be difficult, and it'd probably just end up being a spam or meme fest like LinkedIn or Facebook after a while.
At university, I hold office hours for a mid-level CS course, and it is incredibly rewarding to do so in person, as you can see the flicker of understanding on their face when they get it. That's going to be very hard to capture online.
That's _almost_ the startup we created ~3.5 years ago (still going today!) https://www.uvize.com/
It's not 100% online mentorship though. It's really there to facilitate / manage / help existing mentorship programs at organizations.
We thought about trying to get it to a point where it could work with non-associated mentors/mentees, but it's really a chicken/egg problem at that point.
For those who lack colleagues sitting by and ready to help you getting involved into open source will provide you a kind of mentoring.
Then there are people who will mentor you for money. Giles Bowkett (http://gilesbowkett.com) did this a while a go. Not bad option at all. I'd see paying for someone way smarter than my self to teach me as an amazing investment.
Call me a pessimist but I doubt the vast majority of people will ever find true mentorship. Would it be nice to have a more experienced and talented developer take a personal interest in your career and technical development? yes, of course it would, but it's unlikely at best. I'm sure self study, discipline and "grit" matter far more.
I think it matters more for most people, because they can't get a good mentor. I guess that having one of the top 1000 devs in the world as mentor does carry less risk for your career.
But more than 99% of us aren't that lucky and have to try with self study and "grit".
>>I'm sure self study, discipline and "grit" matter far more.
Sure, but mentors help ensure that you learn the right lessons from your struggles, gain the correct habits and don't go down certain silly rabbit holes and waste time.
Personally, I was fortunate enough to have a mentor when I was starting out and it rocketed me to a strong position in my career and I couldn't be more grateful. I try to actively mentor 1 or 2 people a year as a result.
What does it actually mean "to have a mentor" or "to mentor somebody"? What
kind of activity is this? Because I constantly see people talking about it,
but I've never seen a satisfactory explaination.
The dictionary does a pretty good job of defining it, though it omits something pretty important in practice. That is, to mentor is to advise or train someone.
The omission there is that there are, mostly, concrete goals that the mentee aims to achieve, and the mentor is personally invested in a successful outcome.
I've had "assigned" mentorship at places (which is understandable and I have no immediate complaints) but I feel, personally, being in a supportive environment of coworkers is as good, if not better, than pure mentorship.
I just can't agree with the recommendation to read the comments before articles you find online.
Critical thinking is such an important skill for everyone, not just engineers, and this habit all but eliminates it. You go into an article with a framed opinion of what it's trying to convey, and spend the time reading the article looking for confirmation of that opinion rather than thinking critically for yourself.
This might be OK in some communities like HN where people are usually pretty reasonable and the site seems fair. But it becomes a habit and can be dangerous in other places where the top comment could be paid for or manipulated without you knowing, seeding opinions and confirming them as you view the content.
Definitely read the comments. The author is spot on about the gems and lessons to be found. But do it after you've read the article, and thought about what it meant for you.
The comment section is pure gold for discovering contrasting opinions - which will feed critical thinking. Reading what ever article while remembering different opinions from comment section gives a really nice insight.
Totally agree about the top comments. Not that valuable and some times even misleading/manipulated/bought/nasty.
His whole point is that reading comments first is the mistake. It primes you with thoughts and opinions with little to no cognition required (recognizing they still may be valuable, but those comments will be there after your analysis...)
What we really need is to develop our own critical reading skills, how to connect dots on our own etc. I agree that seeing others comments first before starting that process might be a negative for many reasons.
Most just don't have the luxury of critically analyzing things these days at their work -- the goal is to produce as fast and as much as possible. I find reading the comment sections first helps me gauge what exactly is important in the article and what the takeaways are -- from both angles. Then I can go back to work.
The problem with that is often it gives equal credence to unequal opinions. And not everyone has the critical thinking skills and freedom from bias that they think they do. I'd argue that really nobody is able to fully remove from themselves any biases that may make them more likely to believe some comment over another.
Voting does nothing for this either, as people may upvote a popular lie or misconception, or downvote an uncomfortable truth - I used to see this happen often in the science-based subreddits when I bothered with them on reddit.
I agree. I'm very senior now, bordering on ancient (or at least in the last part of the age tail), and especially over the past 8-10 years (perhaps back to 18 years if you consider the explosion of OOP/OOD and Java to be a tagalong trend) group-think has been a serious problem in development.
The problem with group-think is that that it isn't moderate thinking that is an average of all well-informed people. It can be influenced by a few that have good design skills and say things in a way that people want to believe. I personally have just said whatever came to mind, bullshitting because I was bored, and got many karma points for comments that I'd not thought out, and have definitely seen other comments that were similar. This is especially true when you are shooting down what could be good ideas. A lot of us just like to argue for arguments' sake. Now, a lot of times that is good, but it is very important to try things out that you on your own think are reasonable and see for yourself.
For example, what if HN had been around when PhP was developed and a group of bored naysayers had shot it down because it wasn't organized enough and would promote bad practices. Those things were true- you could write bad PhP code. However, a lot of what exists today was born of people just having fun coding in PhP, and those people wouldn't have learned from their time in PhP, because it never would have come about.
There's a famous saying about it... But, anyway, it's best to have a bias into believing a well articulated comment saying something is viable or useful, and into doubting a well articulated comment saying something is not viable or useless.
>I just can't agree with the recommendation to read the comments before articles you find online.
Your disagreement makes it sound like he made a universal recommendation for all articles in all circumstances. I didn't read it that way.
He specifically constrained his observation to staying on top of new technical developments in /r/programming and HN:
"When browsing Proggit, I recommend reading the comments before committing fifteen minutes to reading a nicely titled (or click-baited) article."
It looks like his advice meant to be a time management tool instead of a shortcut to disable critical thinking. You have several factors that lead to the comments-first-then-read-article strategy:
1) finite time -- can't possibly read every article -- must prioritize the information overload somehow
2) Sturgeon's Law -- 90% of everything is crap (e.g. clickbait titles)
3) you lack the technical background in the new and unfamiliar topic that's a prerequisite for applying critical reasoning.
>Critical thinking is such an important skill for everyone, not just engineers, and this habit all but eliminates it. [...] But it becomes a habit and can be dangerous in other places ...
I think people can be adaptive and use comments-then-article on certain websites but also use the opposite article-then-comments on other websites.
For online articles of New York Times, Washington Post, and Youtube videos... it makes more sense to consume the content and then look at the comments (or skip the comments altogether since they are often a cesspool of nonsense.) For fast-moving technical crowd-sourced article submissions -- it can be rational to read the comments first.
> This might be OK in some communities like HN where people are usually pretty reasonable and the site seems fair.
HN is just as biased and unreasonable as any other forum. Just because the most vocal people here mentally masturbate each other over their inflated IQs, self-diagnosed autism and confounding mix of leftist and techno-libertarian policies doesn't mean that the comments found here are any better than anywhere else.
You can have garbage content without it being filled with profanity and memes.
Reading only the article headline, reading short comments and responding to them is good practice for bullshitting through meetings.
It's a pretty good approximation for boring meetings as you've got a small amount of overall context (article headline::meeting) and small amount of specific context (comment::sentence before your name).
I'm a bootcamp grad and I got lucky enough to find work. While I don't have a mentor in the traditional sense, everyone here knows my background and I can go to any of them for help. I may not be the brightest, but I work really hard and they see it, which I think helps when I go to them with questions.
How do you find a mentor?? When I was at uni, I would often go to the professors and talk about some details and difficulties, and that helped me a great deal, but now that I am out of uni, there is barely anyone in my environment who could be my mentor. And those who could be a mentor know that their time is extremely valuable and are terribly busy.
Try your team lead. Don't expect long philosophical conversations, but if they do a code review, make sure to ask "why?". Not like, "why, you dumbass?" but "why did you make that decision, what are the pro's and con's?"
I used to send emails to my favorite professors just to say hi, or to ask questions, I'm sure they enjoyed the conversation as much as I did.
I can definitely agree with this. Even though I've only held a couple of individual training sessions, the worst ones are where nobody asks anything and people just leave. No feedback on whether this session was any good or did I just completely blew it.
I'll gladly hang around to address any questions. It shows that you're genuinely interested in the matter. Don't be afraid of coming across as a beginner either - asking questions is how you learn.
I don't disagree on your sentiment on the gamedev industry and how it treats devs, but I agree with the author on the point of optimizing for a better career than just optimizing for salary bumps.
Their checklist shares a lot with mine, and I can only assume money will come with having grown in supportive and great development environments.
Optimize doesn't mean that you should completely ignore salary, work/life balance or any other benefit. I read it as, "Don't immediately jump ship just because someone offers you a 3% increase."
>and this is how gamedev is never lacking those new fresh naive developers
I think I know what you mean by this, but just in case, I really think it's the over-representation of SV and startup culture on the Internet. One of the biggest concerns I had before I started working full time as a dev was work/life balance. I listened to the Internet rather than asking peers. It turns out (in my experience) that it's fine in most places. Blogs, Reddit, and HN had me thinking otherwise, and I'm sure the people who drink the SV and startup Kool-Aid are the ones falling prey to this.
Do people really change jobs for a 3% increase? That doesn't even cover the risk of starting over at a new company for me, unless there's something seriously wrong with my current company or there's some other reason to move.
Probably not. I pulled a small number out as an example of what not to do based on some single criterion. A 3% increase is meager, but other benefits could more than make up for it like better healthcare, 401k matching with a better plan, shorter hours, better coworkers, etc. A new job that only gives a 3% increase probably isn't worth it.
Your "best developer self" is the one who supports themselves and their family financially - unless your mortgage is paid by good vibes, karma, or upvotes. Tailor your mindset and skills to accomplish that goal, and you'll be alright. Just remember, you never get to stop - the tools and needs keep changing, and if you want to accomplish that all-important goal of supporting the people who depend on you, then you must change right along with them.
I think the common denominator is to optimize for happiness.
Most of us ended up in software development because we were curious about technology in the first place. Learning stuff and tinkering with stuff makes us happy. We should continue to do so.
The section about optimizing your career is also about optimizing your happiness. There will be plenty of times where the sirens try to lure you into taking on tasks which are financially rewarding but boring. Take on some of these but don't get trapped forever in a local minimum. Your strategic goal is to feed your curiosity and your happiness.
The part about finding a mentor I'd phrase more broadly as: find a network. Find friends. Hang out with people who are fun to hang out with and who care about tech and life in general. They'll probably have strong opinions, and so will you. You'll learn a lot from these people; they'll be the mentorship that you need. And why would they want to hang out with you? Because you are bright, curious, and because people that optimize for happiness are great to hang out with.
I have a question for senior developers like the author. I've been a developer for 1.5 years and on this article's checklist for switching jobs I have everything except a mentor (that's probably more my fault). According to the this article I should not switch jobs. However I live in the Bay Area and there is a huge COL and also salary difference between top and "2nd tier" companies. Junior engineers at Google/FB/MSFT make 180+ while I would say market is 120+ for the Bay Area. This is a sizable income difference esp when you compound over 3-5 years. Dan Luu explains it better: http://danluu.com/startup-tradeoffs/
Does it make sense to stay
at my job where I am learning well or should I try to switch to a larger tech company since it has a material impact on my financial well being ? I want to raise a family and hope own a home (or rent one near good schools) and I don't see that as being possible in the Bay Area without a Google salary. If I was living in a market like Texas I would stay at my current job because market salaries allow you easily have a middle class family lifestyle (my parents live there and you can easily raise a family on 90k). The Bay Area however is another beast and that 50-60K Google salary difference compounded over many years seems substantial (esp for that mortgage down payment). I don't want to move out of the Bay (my wife is tied here too). What do you guys think - are the financial reasons enough to consider switching jobs for the Bay Area ?
Make sure you find out from several sources how many hours those engineers at "top tier" companies are working. They could be making the same as a "2nd tier" engineer, just working 1.5x more. Thats cool if you have the funds to put your kid into a nice school, but you also have to be present to be a good parent.
I work for a top tier company and I work hard, but mostly I do 40-50 hours a week nowadays. I've also worked for second tier companies that I worked 60+ hours a week.
That said I have coworkers that work 60 hour weeks mostly because they're fresh out of school and want to prove themselves.
The list in this article isn't exhaustive, it's just one set of suggestions. They are good and useful suggestions, but not the only possible criteria. You should make your own individual decisions based on the priorities and goals you have for your own life; nobody can tell you what is most important to you. What is it that you really want to accomplish? What are you willing to sacrifice to get there, and is that more or less than what you would actually have to sacrifice?
Keep an eye out for unintended consequences; keep digler999's reply in mind, for instance. But also don't overanalyze; whatever decision you make at this point probably won't be permanent.
Query: As a new software developer, how does one find or develop mentor-mentee relationships? Unlike a technical book or code snippets, one cannot find this information through their own research. There are books on mentorship but they don't really apply specifically to technical fields and there may be nuances I am missing.
Mentors are hard to come by. I'd personally say that mentors don't have to be more senior or wiser or anything in particular. Just be a friendly, likeable person and listen to other people. Anyone cooworker that you respect can teach you something. And people do enjoy when someone is listening and appreciating they experience and skills.
I don't think enough can be said about having good mentors and having good mentors that are good at things you aren't good at. My direct manager and I complement each other pretty well and in addition to it being good for our department, I get to learn a lot.
I like how well thought out your questions are. I generally ask about the company having an open culture for questions and ability to learn, but I'll keep track of those questions in the future.
I'm senior in many regards and act as a back end dev and system engineer. Plus I manage the dev group. I informally mentor some junior front-end devs on developer productivity and testing. After reading the article and comments I am going to step up my game some to help more.
Honestly, I have found salary has correlated strongly with responsibilities you are given. Stronger than job title. Probably because higher salaries are given to people who they respect.
If you optimize for salary, you will probably be given more responsibility.
The author is saying more that it's not just about how critical your responsibilities are to the company and how much you're given, it's about how much you enjoy said responsibilities as well. As an example, if you were to spend your days learning COBOL to chase the cash and work on legacy systems, you are probably having less fun than someone learning Python or Ruby or any number of more modern languages to work in a modern environment for what may be a lesser salary short term than that COBOL dev but can still give you a comfortable lifestyle in the long term as you become more senior.
72 comments
[ 3.1 ms ] story [ 148 ms ] thread> clever at achieving one's aims by indirect or deceitful methods
I never found one and I'm 10 years in the game now. So I'm probably cursed to mediocrity, haha.
I've often thought this would be a good social network - online mentoring. Lots of upside for the mentee, not sure about the mentor...
But that will challenging to capture online.
Unless there's some barrier to entry it would be difficult, and it'd probably just end up being a spam or meme fest like LinkedIn or Facebook after a while.
It's not 100% online mentorship though. It's really there to facilitate / manage / help existing mentorship programs at organizations.
We thought about trying to get it to a point where it could work with non-associated mentors/mentees, but it's really a chicken/egg problem at that point.
Then there are people who will mentor you for money. Giles Bowkett (http://gilesbowkett.com) did this a while a go. Not bad option at all. I'd see paying for someone way smarter than my self to teach me as an amazing investment.
But more than 99% of us aren't that lucky and have to try with self study and "grit".
Sure, but mentors help ensure that you learn the right lessons from your struggles, gain the correct habits and don't go down certain silly rabbit holes and waste time.
Personally, I was fortunate enough to have a mentor when I was starting out and it rocketed me to a strong position in my career and I couldn't be more grateful. I try to actively mentor 1 or 2 people a year as a result.
It's been mostly very successful so far.
The omission there is that there are, mostly, concrete goals that the mentee aims to achieve, and the mentor is personally invested in a successful outcome.
Critical thinking is such an important skill for everyone, not just engineers, and this habit all but eliminates it. You go into an article with a framed opinion of what it's trying to convey, and spend the time reading the article looking for confirmation of that opinion rather than thinking critically for yourself.
This might be OK in some communities like HN where people are usually pretty reasonable and the site seems fair. But it becomes a habit and can be dangerous in other places where the top comment could be paid for or manipulated without you knowing, seeding opinions and confirming them as you view the content.
Definitely read the comments. The author is spot on about the gems and lessons to be found. But do it after you've read the article, and thought about what it meant for you.
Totally agree about the top comments. Not that valuable and some times even misleading/manipulated/bought/nasty.
What we really need is to develop our own critical reading skills, how to connect dots on our own etc. I agree that seeing others comments first before starting that process might be a negative for many reasons.
Voting does nothing for this either, as people may upvote a popular lie or misconception, or downvote an uncomfortable truth - I used to see this happen often in the science-based subreddits when I bothered with them on reddit.
I agree. I'm very senior now, bordering on ancient (or at least in the last part of the age tail), and especially over the past 8-10 years (perhaps back to 18 years if you consider the explosion of OOP/OOD and Java to be a tagalong trend) group-think has been a serious problem in development.
The problem with group-think is that that it isn't moderate thinking that is an average of all well-informed people. It can be influenced by a few that have good design skills and say things in a way that people want to believe. I personally have just said whatever came to mind, bullshitting because I was bored, and got many karma points for comments that I'd not thought out, and have definitely seen other comments that were similar. This is especially true when you are shooting down what could be good ideas. A lot of us just like to argue for arguments' sake. Now, a lot of times that is good, but it is very important to try things out that you on your own think are reasonable and see for yourself.
For example, what if HN had been around when PhP was developed and a group of bored naysayers had shot it down because it wasn't organized enough and would promote bad practices. Those things were true- you could write bad PhP code. However, a lot of what exists today was born of people just having fun coding in PhP, and those people wouldn't have learned from their time in PhP, because it never would have come about.
If you think critically, you will not give too much credence to either, no matter what you read first.
Your disagreement makes it sound like he made a universal recommendation for all articles in all circumstances. I didn't read it that way.
He specifically constrained his observation to staying on top of new technical developments in /r/programming and HN:
"When browsing Proggit, I recommend reading the comments before committing fifteen minutes to reading a nicely titled (or click-baited) article."
It looks like his advice meant to be a time management tool instead of a shortcut to disable critical thinking. You have several factors that lead to the comments-first-then-read-article strategy:
1) finite time -- can't possibly read every article -- must prioritize the information overload somehow
2) Sturgeon's Law -- 90% of everything is crap (e.g. clickbait titles)
3) you lack the technical background in the new and unfamiliar topic that's a prerequisite for applying critical reasoning.
>Critical thinking is such an important skill for everyone, not just engineers, and this habit all but eliminates it. [...] But it becomes a habit and can be dangerous in other places ...
I think people can be adaptive and use comments-then-article on certain websites but also use the opposite article-then-comments on other websites.
For online articles of New York Times, Washington Post, and Youtube videos... it makes more sense to consume the content and then look at the comments (or skip the comments altogether since they are often a cesspool of nonsense.) For fast-moving technical crowd-sourced article submissions -- it can be rational to read the comments first.
I often do this on HN just to make sure the article would even be worth reading.
HN is just as biased and unreasonable as any other forum. Just because the most vocal people here mentally masturbate each other over their inflated IQs, self-diagnosed autism and confounding mix of leftist and techno-libertarian policies doesn't mean that the comments found here are any better than anywhere else.
You can have garbage content without it being filled with profanity and memes.
It's a pretty good approximation for boring meetings as you've got a small amount of overall context (article headline::meeting) and small amount of specific context (comment::sentence before your name).
I used to send emails to my favorite professors just to say hi, or to ask questions, I'm sure they enjoyed the conversation as much as I did.
I'll gladly hang around to address any questions. It shows that you're genuinely interested in the matter. Don't be afraid of coming across as a beginner either - asking questions is how you learn.
Poor souls.
Their checklist shares a lot with mine, and I can only assume money will come with having grown in supportive and great development environments.
>and this is how gamedev is never lacking those new fresh naive developers
I think I know what you mean by this, but just in case, I really think it's the over-representation of SV and startup culture on the Internet. One of the biggest concerns I had before I started working full time as a dev was work/life balance. I listened to the Internet rather than asking peers. It turns out (in my experience) that it's fine in most places. Blogs, Reddit, and HN had me thinking otherwise, and I'm sure the people who drink the SV and startup Kool-Aid are the ones falling prey to this.
Optimizing for happiness and career path seem like more ideal goals for me personally.
Just some different perspective.
Most of us ended up in software development because we were curious about technology in the first place. Learning stuff and tinkering with stuff makes us happy. We should continue to do so.
The section about optimizing your career is also about optimizing your happiness. There will be plenty of times where the sirens try to lure you into taking on tasks which are financially rewarding but boring. Take on some of these but don't get trapped forever in a local minimum. Your strategic goal is to feed your curiosity and your happiness.
The part about finding a mentor I'd phrase more broadly as: find a network. Find friends. Hang out with people who are fun to hang out with and who care about tech and life in general. They'll probably have strong opinions, and so will you. You'll learn a lot from these people; they'll be the mentorship that you need. And why would they want to hang out with you? Because you are bright, curious, and because people that optimize for happiness are great to hang out with.
Does it make sense to stay at my job where I am learning well or should I try to switch to a larger tech company since it has a material impact on my financial well being ? I want to raise a family and hope own a home (or rent one near good schools) and I don't see that as being possible in the Bay Area without a Google salary. If I was living in a market like Texas I would stay at my current job because market salaries allow you easily have a middle class family lifestyle (my parents live there and you can easily raise a family on 90k). The Bay Area however is another beast and that 50-60K Google salary difference compounded over many years seems substantial (esp for that mortgage down payment). I don't want to move out of the Bay (my wife is tied here too). What do you guys think - are the financial reasons enough to consider switching jobs for the Bay Area ?
That said I have coworkers that work 60 hour weeks mostly because they're fresh out of school and want to prove themselves.
Keep an eye out for unintended consequences; keep digler999's reply in mind, for instance. But also don't overanalyze; whatever decision you make at this point probably won't be permanent.
I also sent an email with more details to your contact page before seeing your comment.
You'll get bored anyway if you don't rewrite your program from time to time ;-)
Will I be able to have a more senior developer act as a mentor?
Will I have direct access to more experienced devs on my team?
What opportunites will there be to try something new and get it reviewed?
Are there any tech stack absolutes I will never be able to stray from?
The answers I received were great and ended up being accurate.
It was the first time I had ever decided to choose a company based primarily on the potential for growth and not money/perks/etc.
Smartest decision ever.
If you optimize for salary, you will probably be given more responsibility.