Ask HN: What are some things you wish you had learned earlier in your careers?

15 points by mi3law ↗ HN
Curious about this as I am currently going through my first job search out of a startup.

Please be as specific as you can, and add as much reasoning or context on how this effected your work and career.

15 comments

[ 4.8 ms ] story [ 72.5 ms ] thread
I wish I took the Coursera's ML course 10 years earlier. But it didn't exist then.
Never learned JavaScript when I was starting out in 1995-8. Always found a way to hack things together, but only by adjusting existing scripts. It's frequently a choke point for me now where I have to delegate to someone else to fix something that's beyond me. At 38 and being very busy, I don't have (or make) time to learn it now.

I have worked for myself for almost the entirety of my career, so never had to face a job search or technical interview or anything like that.

I think you should forgive yourself a bit more: Back in 1995-8 most programmers never took JavaScript seriously because the "real code" was be done in a language like Java or Perl. We tend to forget that in a pre-web 2.0 era it was sort of seen as a hack to do small things rather than giving an app a front end.

Besides if you really wanted to make a career mistake back then it would have been to master Lingo.

That's correct! CGI-BIN folders in every site.

You might get a laugh out of this after your Lingo comment. I should probably consider it a career mistake but I've got by for a long time despite it - I settled on ColdFusion when it was an Allaire product, and have stuck with it since. Now using Railo. CF is not the trendiest of setups to use. ;)

First thought: "Wait, there's NO way ColdFusion can still be around today!"

Looks online "OMG!"

Although I think Adobe is still supporting Director, but alas my paying CD-ROM gigs ended in the 90s...

(comment deleted)
People who are smart and cunning are dangerous and there are plenty of them out there. Technological feat is not enough in software industry as personal interest and politics is prevalent. If you really despise these things, it's better to think ahead and come up with a plan or work for yourself.
I have seen the opposite - People who are smart become more generous as they realize they don't have to be cunning to succeed. On the other hand, dumb people think others succeed by being cunning and justify they becoming more cunning. Since, these mediocres tend to be high in any large organization, politics sets in.
For me it was switching over from doing what others wanted to doing what I wanted. More specifically I was working at Sun and had been "in the market" for a bit over 5 years and sought out career advice about how people got to be senior most engineers (Sun called them Distinguished Engineers). The advice took me by surprise which was, stop doing what others want and start doing what you are passionate about and go from there. I've always been passionate about systems, whether they are operating systems, systems of government, or economic systems. Anything where there were lots of interacting parts which created something that none of the individual parts could do on their own.

Then my path switched from asking "What are people looking for that might be interesting?" to "Who is working on something interesting to me and how can I become part of that?"

It changed no only how I approached looking for jobs, it also changed how I felt about the CRUD stuff that came up in the middle of some of them. Just like a largely ignored my general education classes in school, knowing that I needed to pass them to get my degree. Staying focused on what I was building let a lot of the annoying stuff about earning a living sort of roll off my back.

I don't know that my life would have been largely different but I would have felt better about my path.

My two bits of advice are: 1) always try to be the dumbest person in the room (i.e., surround yourself with smart people from whom you can learn), and 2) remove the phrase "it works for me" from your vocabulary when dealing with others. The latter may not be something you utter often, and if that's the case, then feel free to ignore it. :)

The first should be pretty obvious, but the second is a little less obvious. But think about it this way: if it worked for me, I wouldn't complain about it. Agree?

So there are two possible choices: either I'm wrong or your code is wrong (assuming you're an engineer). As a member of a startup, it is generally in your best interest to assume that the complainant is right and your code is wrong.

Assume that your code is wrong. Investigate it. Ask for more information if you need it. Track down the problem. If it works for you, then think of all the reasons it might not work for someone who doesn't know how it works. Think of all the edge cases. Clear the cookies. Bust the cache. Make sure it's not Wednesday (http://gyrovague.com/2015/07/29/crashes-only-on-wednesdays/). Whatever it takes to figure out why it's not working for the user (which may or may not mean it works for you!).

Maybe the code is wrong -- if so, fix it. Maybe it's a feature -- if so, explain that. Maybe the user made a mistake -- if so, identify why and fix that.

Only after identifying the problem and potential solution do you go back to your complainant and say, "Here's what happened and here's what we're doing about it." If the complainant made a mistake, you can explain "it works", but you should also follow up with some way that you're going to make sure this doesn't happen again.

This is basically the single best way I know to resolve complaints. People respect you significantly more when you can always present a solution -- even if it turns out they were wrong all along!

This is great advice! A common sub-case of this is not throwing proper error messages/not validating inputs. Without that, users will be stuck when they make mistakes. If you stick your stand that "it works for me", you have lost the opportunity to fix it for others. When you realize that, you would have lost many users.
Negotiate hard for salary and do not apologize for it. Save money.
I wish I had not assumed that management , and the culture they create, are representative of a wider trend in an industry. This assumption was based on what is known as the "False Consensus" effect.

I graduated from the university (undergrad) in 2003 with a bachelors degree in computer science. I joined a company that was prestigious at that time. Soon after joining, I felt very disappointed in my career choice as all around me were teams that were outsourcing major roles to TCS and InfoSys consultants. Adding insult to injury, in order to receive their full severance packages, the full time employees were required to stay on long enough to train their low-cost replacement. Seeing this, I felt "awful" about the IT career path.

If I could go back, I wish I knew that IT wasn't as easily commoditized as the managers around me assumed it was. Further, I wish I knew that this company was not representative of a broader trend across the entire American economy. Knowing this, I think I would have doubled down on acquiring more tech skills and spent less time diversifying my skillset into business domains requiring tech.

On the other hand, a positive outcome of this early career experience is that how I reacted to that culture made me who I am today. I make the most of having depth in multiple disciplines.

This first one applies generally when you are working in established companies more than early startups. Anyway, stick out difficult projects longer than you think you should. I jumped shipped too early on a couple of projects early on and missed out on some amazing growth/learning opportunities that could have saved me significant learning curves and frustrations later on, plus it could have helped my career even faster. Not suggesting anyone stick out an abusive situation where the team is abusive or the team is being abused by management, but stick out projects that are in trouble to learn from that adversity.

The other recommendation, do not let yourself get stagnant at a company just because they are paying you and the job isn't bad. Keep your eyes on the industry and trends to make sure you are not being used or missing great opportunities. Sorry to say but there are many employers through ignorance or willful deceit that will try to take advantage of you and you need to control your own destiny. I tend to think more is out of ignorance and fear then willful deceit but none the less it happens.

The number one biggest lesson I have discovered the last few years, and the number one thing I have seen that holds people back when it is missing is : You always have a choice, and taking responsibility works.

Choosing to blaming other people for whatever is not working for you, instead of choosing to take responsibility to create improvements that may work for you, is not something that works for you. Fabricating a story where you are a fake victim, complaining about things that aren't working for you, pretending things that aren't working for you are not your responsibility, and pretending you are fully justified in trying to blame others for what you declined to improve yourself, is just creating the very powerlessness for yourself you are pretending others forced upon you.

As soon as you blame someone else, you give away your power, you reduce your agency, and you pretend that you don't have the power of choice, paradoxically creating the very circumstances about which you are complaining. As soon as you take responsibility you increase your power, agency and your choices, reducing the likelihood you have anything to complain about.

Blaming others is a compelling fake narrative to be seduced by, because substituting getting real results with the fake pay off of pretending others are wrong, and by implication pretending you are right, has the color of "safety" because because it's a pay off you invent in your mind, rather than a result in the real world. So you don't have to do anything to create this fake pay off ( except delude yourself ) and even if you fail, you can still blame others, whereas if you fail while trying to create a real result, then you take responsibility, reflect that it was your choices that created this failure and think on this opportunity for creating improvements.

This carries over into hiring. You want to hire people who aren't seduced by blaming others instead of taking responsibility to create improvements. These people are more productive and create more results than people who don't take responsibility.

The number 2 would be : following your heart, let your feelings be your guide, and at every decision point, choose to walk closer to the life you want rather than further from it.

The number 3 would be : be brave, live, do things that bring you alive, speak, let your light shine, give of your unique contribution.