Hacker News new | past | comments | ask | show | jobs | submit login
Lessons for Software Industry Novices (tenpoundhammer.com)
111 points by tenpoundhammer on Sept 19, 2011 | hide | past | favorite | 42 comments



I suspect #1 is trying to get at something more general (like 'be humble'), but it isn't always true. There are also a lot of mediocre people working in the industry. In more than one instance I've seen recent college grads - and even no-college wunderkinds - wipe the floor with more established devs in terms of knowledge and programming ability. The fact that there are always people smarter than you goes in both directions. The fact that you've been working in the industry longer doesn't automatically make you the smart one.


Indeed, I think it is possible to start a new job and find you are the smartest person around. That means you should start looking for another job.


Or time to step out & start a competing business ;)


Here's my response:

Either start your own company or find a company where you can be yourself and ship code and not have to worry about 33 lessons.

In this day and age we shouldn't have to worry about things like hairstyles and asking what turns out to be a stupid question.

If you're a superstar at shipping great software then nothing else matters - at least that's my experience in two billion dollar software companies.

Perhaps that's part of why they got to such a big scale.


A little clarification.

Really good developers are priceless.

Anyone who is smart knows this. You just have to look at how much companies are willing to pay developers in signing bonuses and retention bonuses.

As a developer you should be aware of this.

Also, life is short.

Instead of choosing a company or line of work where you have to focus on things you don't want to focus on or change yourself -

pick an area you love and where people love you as you are.

Only idiot pointy haired managers would pick a clean-cut mediocre programmer over a superstar coder who doesn't shave.

And in my experience the superstars are nearly always not concerned with GTL (gym, tanning, and laundry).


The advice is not going to apply to the top of the top or even near the top. It's for the other parts of the bell curve.

If you're really good or make money for people (take Lady Gaga as an example) you can get away with anything. But most people or the people that that post is directed to aren't.

As a side note I always wondered why back in the day Bill Gates, when he was the richest man in the world (or near that) always wore a suit to business meetings. I mean you would think he would just do whatever he wanted to. But apparently he still had to answer to "someone" and felt it wasn't appropriate.


The world is changing. It's very different now.

There was a time when there were Feudal Lords and now there aren't.

Similarly, we're moving away from a time of microserfs to hackers and coders who are free.

Love the downvotes - Guess people would rather take advice on how to be mediocre and miserable and do things you don't want to do than take control of their own destiny and find a company they love being at or start one themselves.


>Similarly, we're moving away from a time of microserfs to hackers and coders who are free.

No, we really aren't. Yes, it's easy to be independent if you have a marketable skillset, and it's a great time to launch a startup. That said, the vast majority of programmers are still employed by big organizations where these rules are very much in effect. They aren't directed at people who are working on their own; they're directed at the majority who are working in a corporate climate.


This is an awesome discussion, this post was surely not aimed at rockstars or CEO's. There are a contingent of people that are happy to work to for others, even if their policies are less than ideal. Some people enjoy the safety that comes with a regular paycheck.

Also for many people there are a lot of factors that go into picking a career, location, amount of time spent with family, benefits etc. That limits options for a large number of people.

So while it's nice to "control your own destiny" it's also important to consider that to some people destiny is more than a career path, and that being mediocre doesn't mean being miserable. There are tons of people that are perfectly happy being mediocre.


This rather sounds like "how to survive in a large dystopian corporation". Some are good tricks but some don't apply everywhere


> 1. You’re not smarter than anyone

Should be: You're not smarter than everyone. Ever worked with interns? They have even more to learn than you do.

> 3. Looks matter

Do not care, and don't want to work for anyone who does. This is nonsense.

> 6. Software’s primary function is to earn profits

What? It's not. Software's primary function is to tell a device what to do. And the device is meant to make lives better. Nonprofits exist; they use software too.

I quit reading after #15 and #16 because clearly this dude is just trying to fill up bullet points. Is 33 the magic "get lots of views" number? FFS.


"Become a part of the culture before trying to influence it"

This is a tricky balancing act, because sometimes a fresh pair of eyes can be helpful, but OMG! I have recent experience with a new hire that needed to be shown that point. Everything he saw he declared the stupidest thing ever. "Why is X built with Y, when it could just be done with Z?"

He changed his tune after a month or two and gained some background knowledge of the engineering tradeoffs involved... but not before he burned many bridges in the process.

Were I to give him a word of advice back then, it would be to archive his rants in a text file, sit on them for 6 months, THEN go off at the mouth. He'd have more background to prevent him from committing some serious newbie faux pas, and enough credibility for his better arguments to be heard.


As a note, I would tread very carefully with #13 (Secret projects). Especially if you work on it at work. One of the reasons these types of projects never get approved is because of #6 (software must earn profits), and being seen working on that type of thing can give the impression that you know better than your boss, which is not the impression you want to give.


Reading this, I was immediately reminded of why I couldn't wait any longer to start my own company. As others have mentioned in the thread, many of these 33 lessons are spot-on ...unfortunately. (I don't want to sound like I'm criticizing the author - it's well-written and concise, and he's certainly achieved the composition skills his boss had hoped.)

Some of lessons compared to working for yourself: >1. You’re not smarter than anyone

Unfortunately, we're "smarter" than our users in that we over-estimate their comfort with our service. The majority of users are not necessarily computer-literate or used to the modern computing idioms Westerners take for granted. (My company is in a developing African nation, operates over SMS, and every day we're surprised at how many users misunderstand what we wrongly assumed to be simple instructions. Example: "SMS 'en' for English. SMS 'fr' pour le Francais." and we receive an SMS containing "[our-product name] fr". Gah, wasn't prepared for that!

>3. Looks matter

Like most things in life, "it depends." When I'm working in my underwear, no they don't. When I'm going out to recruit new users, I'll groom/dress in a way that's likely to appeal to that specific demographic du jour. I'm young, which scares some people (the kind of conservative, MegaCorp lifers who'd normally agree 100% with this article) because young == inexperienced. Ok, so I don't shave for a while before planning to meet them. +10 to age perception, "maturity" unlocked.

#4's brains are splattered on the wall, and bad_user is holding the smoking gun. Well said, amigo. The advice I've taken from HN on this matter is simply "fake it 'til you make it". HOWEVER, being a short phrase, it's prone to misinterpretation. It doesn't mean lie about what you can do. It does mean when I'm negotiating with veteran suits I should try to remain calm and collected, like I have some clue what I'm doing (I don't, but if you can't believe in yourself, how the hell is your client supposed to?).

>6. Software’s primary function is to earn profits

Nah, it's about making the users of your software happy. This way, the advice applies whether the software is FOSS or commercial.


(continued)

>32. Never Get Drunk At Work Parties

I'd rephrase this to "know thyself". If you know you tend to show your anger/depression/lecherousness when drunk, maybe it wouldn't be such a great idea. Working for companies big and small in the past, I personally enjoyed every opportunity to go out boozing with buddies or bosses. I'd argue that several of the 33 lessons can be checked off at once this way; the idea is comical enough to me (a high-functioning alcohol aficionado), I'm going to spend the rest of the post on it:

>1. You’re not smarter than anyone Nothing like the ancient bonding ritual of drinking until you can't stand straight to bring about the status equilibrium. But it will give you the chance to mention the stuff you have done right that might not have gotten the attention you'd hoped (10. Toot your own horn). "Well, Bob, writing that script last week was easier than walking right now."

>2. There is such a thing as a stupid question And several of them will pour out during the bar-crawl. This is good because you have an excuse to talk frankly with one another. This ability to communicate without fear of reprisal is so important, it's a part of the lifestyle of Japanese salarymen. Afterwards, all is forgiven/forgotten because, hey, you were drunk. This means whichever you're going for (16/15. Do/Don't be a yes man), you can feel comfortable in being honest.

>3. Looks matter This pretense falls apart when the top officers of a successful company are joyously murdering their favorite karaoke songs because their brains are too soaked to simultaneously read the words and produce the sounds they represent. It's an ugly reminder of the beautiful truth that, no, your looks and performance are independent variables.

>4. Know what you know and what you don't know And take advantage of this opportunity to ask the important questions. Not banal, "8. Have a presence", "I'm here too, remember?" small-talk. You can learn the most fucking important information about your work (and thus, life - depending on how you look at it) by splitting a bottle with your boss. This is so important, I'm going to type "fucking" again.

At my entry-level position at my last job, I knew as much as the top managers - possibly more, if you consider that the other people "playing it straight" won't tell the executives what they don't want to hear, but will happily vent their frustrations to you (7. Listen to people, 9. Archive Everything you can, 31. Find out what you like and don't like about your job).

Bonus: when people are complaining, they're telling you how to win their hearts (11. Help others and they will help you). When they're drinking and complaining, it's more likely to be truth and not mere politicking.

>11. Help others and they will help you Nothing builds camaraderie like holding your manager's head over the toilet and fetching him some water (or whatever the situation happens to be - searching for the house keys under a desk or the managing director, incidentally, under a desk). Improvise ways out of the adverse situations resulting from the group's drunken antics (30. Do the best you can with what you have).

I am mystified by the social ritual of drinking and continue plunging into it in hopes of better understanding it, but the strongest personal - and consequently, professional - bonds are forged in the fires of irresponsibility (24. Learn to work in a team).

If anyone has recommended reading on this phenomenon, please do share!

>18. Make Friends >19. Have Fun >20. Know when to put in the extra hours >21. Don't get too comfortable >26. Make your job enjoyable >27. Take Breaks >28. Be A Cool Guy

All apply directly.

I realize a lot of this will sound ludicrous, immature, illogical, terrifying and so on, but anyone who's taken part in school life and business life will have no trouble observing that these adjectives can apply to both. I don't want you to get shitfaced and stumble through the datacenter, tripping on wires and unplugging them before drowning in a puddle of vomit. I do want you to step out of your comfort zone, arrange where you can share more than a few drinks with your boss, learn about your company through his eyes, and better yourself as a result of it.

In the context of HN, I would re-title this article: "33 reasons to start your own company!" In the context of this post, I would re-title it: "32 reasons why reason 32 is bullshit."


(deleted and moved here because it messed up the post order)

Ooh, ooh, and one more thing...

12. Advance your skills at all times [...] It's hard to say what will be popular in the software industry in ten years, but I can guarantee it won't be esoteric Anime.

At the risk of sounding even more juvenile than in my previous rebuttals: fuck that. I know that "anime" here is just an example of any "time-waster" that "professionals" like to hate on, as if every second of every day has to be scheduled in advance and accounted for or else... or else... chaos!

How about we don't just develop as worker bees but instead as human fucking beings? Saying "don't watch anime" is barely different from saying "don't read books" - it's the quality of the content that matters. I've gotten more out of Tengen Toppa Gurren Lagann than The Bible because the protagonists in those stories remind me to keep pushing past my limits, whereas the other work of fiction would instead as us to give in and accept our lots in life.

Whether you're Randy Pausch or Bob McBurger-flipper, our lives are ending one second at a time. Let's use that time wisely, sure. But let's also enjoy ourselves. I prefer my anime, books, wine, women, ...life to be the most interesting the most often. Whether that means reading The Little Schemer to expand your mind or lying in a field eating mushrooms to expand your mind, it's not for me to judge. So don't be hasty to write off the computer nerds who like anime.

I'm not mad, just passionate ;)


Some good advice. Showers are important, but I'd like to believe that software is a place where a programmer (who doesn't go face-to-face with clients) could wear a mohawk for three months. I'm an idealist.


Tolerance for radical style choices are one thing but unfortunately in IT circles, it's all too common to have people that have no sense of basic hygiene at all. If you constantly wear dirty (maybe also worn-out?) clothing, smell like the dead and your hair's always greasy, it is bound to affect what people think of you. I don't think that there are many places where unshowered folks automatically mean good code.


Depends on where you work.

Personally I screen out all the companies with smells like that - not because I like to wear a mohawk (I am a huge nerd but I love wearing a suit and tie) but because it tends to be the kind of place were people judge you on how you look rather than what you do.


Beware thinking that environments where people don't dress formally are environments where people don't judge based on looks.

I don't love wearing a suit and tie, but do it for my day job. If I go to a tech meetup after work while still wearing my day-job clothes, I find a lot of people judge me to be someone not technically serious, based on how I happen to be dressed at that time. Prejudice based on appearance is a cognitive shortcut lots of people overuse.


I agree. Maybe better advice for a novice would be to stay the fuck away from companies that micromanage how you look.


I find the reverse connection that people make amusing: "You wear nice clothes, ergo, you are a bad coder".

It's like a website. You want your website to look pro, it sells you. You want to look pro, it sells. you.


There are places you can get away with it, but the industry as a whole is still very business-centric. I've heard of places were people are required to wear slacks everyday.


Until I left, my previous company's policy were shoes (not sneakers, or black sneakers), collard shirt (right now your thinking polo!.. but read on), tie (yeah, so that nixes the polo), slacks. On Fridays, you get to take off the tie.

Come to work without a tie? Go back home. I always kept a backup because sometimes you forget!!!

Too bad (dress code != skill).


Shit like that would be a dealbreaker for me. I hope that the pay was insane.


Pay wasn't insane, not even close. I wouldn't even call the pay sane!!


I think it depends a lot on the reputation you build around yourself.

Ever noticed how the design/artistry department gets away with looking all sorts of crazy creative? If you convince people around you that you are crazy creative then you get to dress pretty much any way you want!

Of course this must not be a show you put on, you must always be like this.


     #1 - You’re not smarter than anyone
Stupidity is in no short supply ... I have faith in the people I work with, I always question my own assumptions, I always blame me first ... but beware of dumb people with strong opinions, as they will suck your soul out.

     #2 - There is such a thing as a stupid question
The thing that pisses me the most is when newbies DO NOT ask questions, as if I would think less of them.

I'm always telling newbies -- "don't worry, I know you suck, everybody sucked at some point and I'm more interested in how fast you can learn".

You can also drive the learning process -- instead of giving your coworker/employee a concrete list of steps he needs to follow, give him links to documentation instead. That's far more productive and he'll be less likely to ask the same question twice.

     #3 - Looks matter
Yes, if you're referring to the work you do. I like beautiful code.

This really depends on the work environment. In big corporations people get impressed by suits more than in smaller companies where everyday is casual Friday.

     #4 - Know what you know and what you don't know
The more I learn, the more I realize I don't know shit. Also, could this advice be any more useless?

     #6 - Software’s primary function is to earn profits
NO, that's the company's primary function, and it's a freaking big difference, especially when you think about the laws of microeconomics.

     #7 - Listen to people
In other words, behave like a human.

     #8 - Have a presence
When I worked for the bigco, I preferred to get stuff done instead of going to pointless meetings. It worked great, and I got promoted in front of people that kissed ass.

     32. Never Get Drunk At Work Parties
Lame. There's nothing like getting drunk shoulder to shoulder with the CEO.

     33. Don't do things because they are cutting edge
Why? What's wrong with making a bad decision?

     Before switching techniques, languages, 
     or anything else, carefully decide if it
     provides a large enough benefit
And yet there are so many choices out there that many times it's best to just follow your instinct. Playing it safe is stupid and also irresponsible -- that's how companies still choose Java EE, that's how you end up with a mountain of crap (that nobody in particular can be blamed for).

     ...
Some pieces of the article are perfectly valid, but I can't help but wonder if those shouldn't be common sense for a properly raised 7-year old.

My number #1 advice I would give to newbies:

     Stop giving advices


I agree with literally everything you say except one thing (and boy is it a biggie).

This really depends on the work environment. In big corporations people get impressed by suits more than in smaller companies where everyday is casual Friday.

Just because you dress casually doesn't mean people aren't judging you based on looks. If anything, they're judging you more because they're seeing the real you.

This is one point the OP is probably right on. People, regardless of the size of their employer, judge you from the standpoint of looks. It's just in our nature. To say that one can overcome this with simple coding prowess is incredibly naive.


This sort of thing makes me even more glad I live in the Northwest (US) where it's not only acceptable but the norm to wear a t-shirt and jeans to any meeting or job interview.


Maybe I've spent too much time being brainwashed by FOSS advocates, but #6 (Software’s primary function is to earn profit) made my stomach lurch. I agree, profit is the _company's_ primary function.

There are profitable companies out there who publish free software. Lets not go advising the younglings that the entire software world must be locked-up & proprietary.


If a company is a software company isn't the goal of the software to create profits for the company? Even a company that provides free software needs to make money... One way or another.

I'm confused on how this couldn't be the case? Also I don't think I mentioned locked-up or proprietary. I was hinting more that software decisions often had to fall in line with business decisions.


i read #2, you know Only when you have exhausted all possibilities should you ask for help. and stopped reading. this is hands down one of the most asinine things i have ever read—though i don't doubt many feel this way. one of the purposes of being human is sharing ideas. in fact, it's the sharing of ideas that allow any of us to code. here's a ted talk http://www.ted.com/talks/matt_ridley_when_ideas_have_sex.htm... this very idea. on top of that, there are some that learn best in collaboration with others. if you ask me, not asking for help is one of the dumbest things you can do. maybe being self-taught has lead me to be naïve. if that's the case, i'm better off.

edit: for some reason the link was bad, here's the youtube: http://www.youtube.com/watch?v=OLHh9E5ilZ4


This is valuable advice even for people with work experience but who are changing companies, industries, etc.

One thing I did note is that why do we have to bend over backwards at times at places where people are just rude and lack basic soft skills ? The comment about being talked to in a very harsh tone if you ask a "stupid" question particularly hit home with me as I have had to face that many times even after having done my initial research and I make sure to write down everything in my trusted notepad.


Writing software (GNU) != Selling software (Microsoft) != Selling support (RedHat) != Selling solutions (IBM) != Selling gadgets (Apple) != Selling advertisements (Google) != Selling privacy (Facebook) != Selling books (Amazon) != Selling consulting (Accenture)


I agree with most of the lesson presented here which is surprising for me! I might start becoming wiser! I'm making lesson 13 and 17 my own for the next few months because I kind of struggle with these.


Not sure why some have such a negative reaction to dressing well/looking good (#3). Look good, feel good is my motto.


Perhaps it's the example given, a certain hair style rather than something like wearing dirty old clothes. One could look good without looking 'traditional.'

I don't think many people are going to argue about basic hygiene, if someone isn't cleaning themselves and it may have negative effects on their coworkers (like not wanting to be in a room with an unwashed person).


#3. Looks matter

I disagree. Your output trumps the way you look, especially in the bay area.


Not everyone works in the Bay Area.


that's why is said "especially".


some of that is good and some isn't. #7 is right to an extent, but anyone that acts the way you said you were treated is ridiculous and needs to be brought down a notch.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: