6 ms·
one point al3x didn't talk to: not all startups will teach you to be an awesome engineer. If a startup is really hiring the best of best, a less experienced pro
by dustingetz 13y ago
one point al3x didn't talk to: not all startups will teach you to be an awesome engineer. If a startup is really hiring the best of best, a less experienced programmer is not likely to make the cut. Ever look at your code from 6 months, a year, 5 years ago? and how bad it is? Many tech startups don't have time for that, the quality of your work can make or break a startup. Elite startups want "ex-googlers".
So if you want to get good, you need to work with people that are better than you, who have already learned from their mistakes so you don't have to. Find the strongest shop that will hire you. It will not be the best shop. It probably won't be an elite startup. But more mature companies can afford to pay for your learning curve. You also will probably make more money, enough to pay off your student debt and save up to bootstrap when you're more experienced.
- jcampbell1 13y agoI run a bootstrapped company and we hire the cheapest engineers we can find. I interview for competence in the one thing they understand, and then just how fast they learn. I cannot overstate the number of people out there that are incredibly smart, but can't describe basic information like how the HTTP protocol works. It is completely baffling. These people can be explained how the protocol works in 10 minutes, and spend 8 hours at home looking at the Chrome web inspector, and completely grock the protocol. I find myself a seed planter. These people are smart enough to figure it out, but for some reason they don't do it without a 10 minute verbal overview. My advice to any to young person is to judge the job by the quality of the mentor. Smart people feel ecstasy when learning new things, and if you have anxiety about your job, then you are likely in the wrong position.
- RockyMcNuts 13y agoMost important thing in your first job is your boss. You are going to learn a massive amount, not just the job skills, but how to work in a group/company. The distance is massive between learning the right things from someone who does things in a first class way, and the wrong things from someone mediocre or worse. Second is the company. You join the right company, and it's a solid growing company, or a rocket ship, you have lots of opportunity to learn and grow. Conversely, if it's a truly awful company known for unethical practices or engineering nightmares, it can end up haunting you, both in teaching you the wrong things and a possible red flag on your resume if you stay too long.
- jcampbell1 13y agoIn a flat organization, your boss is going to be irrelevant. I would gauge a company by whether the interviewers teach or belittle. I personally find belittling okay, and can learn in that environment. "fuck you, if you are such an expert, then you can explain it to me. If you can't explain it, then you are probably full of shit." I have no problem saying that, but most people won't/shouldn't. I get high from learning no matter whether the people are assholes or teachers. Most people need good mentors that are not managers. Any organization where managers have time to teach are too hierarchical.
- franciscoprat 13y agoA manager can be a mentor regardless of the type of organization. What is important if you want to improve a particular skill set is that the people that are managing you truly understand what it takes to do your job well and can provide feedback on what you are not doing well from a "do-ers" perspective - more of an apprenticeship model. I have personally found that mentors are great for career advice and resolving questions, but never have enough "skin in the game" to invest their time in my development.
- jcampbell1 13y agoI used the word mentor incorrectly. What you want is peer teachers, not mentors. Mentors by the corporate definition are largely useless. You contact them 1-2 per month at best, which is pointless. What you want is a person that observes your code, behavior, interactions, demeanor, etc., and tells you how to do better. It is impossible to have perfect introspection. You need to find a guide more than the corporate definition of "mentor". People need apprentice masters more than mentors, I wish I had used a better term.
- RockyMcNuts 13y agothat's pretty much what I meant... if you've just graduated that person is not really your 'peer', maybe not your 'boss' either ... a lot of times real world roles and relationships don't line up with org charts.
- dustingetz 13y agoi totally understand and respect your position and that's definitely a strategy that can work. The other end of the spectrum is, you could contract someone like Tony Morris[1] at $250 an hour for 20 hours a week, and he will build your product faster than a team of untrained engineers, or more likely, build a product that untrained engineers aren't capable of building, with a defect rate close to zero. Not every strategy is right for every business, but generally, the harder the technical challenges, the more cost effective it is to pay for a superstar. [1] http://tmorris.net/posts.html http://tmorris.net/posts.html
- oblique63 13y agoYeah, but I think the over-arching idea that the OP was getting at, was "what if we can breed these 'superstars'?" That would certainly seem feasible if you interview for personality traits, interests and learning skills, more than actual/concrete knowledge and working skills. And of course, this would be a lot more cost-effective as well. In that case, I would say that the key would lie in paying more attention to human psychology/intelligence research than to tech blogs/circles to find out more about 'superstars'.
- mbillie1 13y ago> That would certainly seem feasible if you interview for personality traits, interests and learning skills, more than actual/concrete knowledge and working skills. That's a good chunk of the way we (ThoughtWorks) interview, along with general smarts and good company fit. It's easier to teach a very smart person [language x, skillset y] than it is to teach a random person who knows [language x, skillset y] how to be very smart.
- btilly 13y agoTo a point that is possible. However there are key lessons that don't really sink in until after you have made certain mistakes and have seen the consequences. For instance I understood the value of forcing variable declarations, and of having multiple layers of safeguards after a typo in a variable name caused me to take down Bloomberg's ftp server about 15 years ago. Judging from ability and personality, it was clear at that point that I had potential. And I received some excellent mentoring. But potential and mentoring do not ensure a smooth path to success.
- rhizome 13y agoJust out of curiosity, do you phrase the question, "how does the HTTP protocol work?"
- cuttooth 13y agoThis would be (and still is) a great sentiment, but the problem is that so many startups and small development shops are looking for something that most fresh graduates/junior level developers can't offer. It's a real shame, because it appears as if there's often little to no budge, and I worry for the future of the market (and by this I mean for the other 98% of the US which isn't SF or NY) because it's a real issue that's going to start rearing its head, if it hasn't already.
- michaelochurch 13y agoThere are also plenty of startups that don't value or recognize technical skill and where it's easy for a junior engineer to get hired. Those are terrible as well, because (a) they'll make you stay mediocre and (b) you end up learning the wrong lessons.
- hkmurakami 13y agolike that HN'er's story of wiping a production DB accientally and the company (a social gaming company) blaming him and bullying him into resigning. (instead of asking why they had given a Jr. Dev write access to production in the first place)
- MichaelGG 13y agoGiving a "junior dev" access isn't the issue; after all, that dev probably writes code that can execute SQL. The problem there was not having any safeguards against running arbitrary commands and not being able to just rollback from the transaction logs. Seriously, it should be a small annoying incident. Screwed up some data? OK, stop things, restore, rollback to the transaction before you screwed it. Apologize and move on.
- duaneb 13y agoGiving the Jr Dev access wasn't the problem; your site should be Jr Dev proof (i.e. have backups). If that wasn't a problem, then they only have themselves to blame for investing in someone they obviously didn't want. Besides, just because you're inexperienced doesn't excuse stupid behavior, and I'm struggling to think of how one might accidentally drop a database after logging into a production environment—I would suspect that people were already lax about it if a Jr Dev was doing it.
- bcbrown 13y agoIf I recall correctly, he was developing a new feature, and the only way to test his work was by creating and dropping test tables, on the production db. One day he dropped the wrong thing. I don't think he had any technical or academic background, and there was no oversight.
- larsberg 13y agoGreat point. A good rule of thumb in jobs is that if you are the undisputed top <X>, make sure that you are being compensated very, very well. Because you just sold out. It is quite hard to reach new levels of expertise without explicit, task-related mentoring, and if you're trading off that kind of growth, do it explicitly. Back when I was a manager, I used to find it somewhat depressing to interview people who had gone to startups or non-tech firms for 5-10 years, reached "senior developer" or "architect" roles, and whose levels of expertise were indistinguishable from the median recent stanford grad. Certainly, they knew more "things" but had failed to grow in either scope or depth.
- michaelochurch 13y agoCertainly, they knew more "things" but had failed to grow in either scope or depth. It's really easy to let career development and general-purpose learning go to slack when you believe this thing you're spending 80 hours per week on is going to make you rich and change the world-- and when you're surrounded by people who (equally irrationally) believe the exact same thing.
- dustingetz 13y agothat first sentance is an amazing way to frame salary negotiation, thank you!
- jaimebuelta 13y agoIf you work on a startup, almost by definition you'll be doing a lot of different stuff, and changing a lot of things. That is a great environment to learn new different stuff (even out of the engineering field). Maybe not deep knowledge, on the other hand... And, of course, working with great people will make you learn faster and better.