Ask Slashdot: What Do You Wish You'd Known Starting Out As a Programmer? 548
snydeq writes: Most of us gave little thought to the "career" aspect of programming when starting out, but here we are, battle-hardened by hard-learned lessons, slouching our way through decades at the console, wishing perhaps that we had recognized the long road ahead when we started. What advice might we give to our younger self, or to younger selves coming to programming just now? Andrew C. Oliver offers several insights he gave little thought to when first coding: "Back then, I simply loved to code and could have cared less about my 'career' or about playing well with others. I could have saved myself a ton of trouble if I'd just followed a few simple practices." What are yours?
Where to begin (Score:5, Interesting)
Project management, specifically the importance of not being a bottleneck.
Re:Pick a different job. (Score:5, Interesting)
Re:Pick a different job. (Score:4, Interesting)
Programmers are smart enough not to unionise, which allows newcomers into the field without these insane artificial barriers of entry.
Unions are barriers to entry into the field to any newcomers, unions are also horrific from point of view of price setting and prevent people who actually excel in the job from making significantly more than those who only coast by. Your complaint is a complaint of somebody who shouldn't have become a programmer in the first place, but also it is a complaint of a horrible person, who wants to prevent others from entering the field freely.
People shouldn't be licensed just to try and make a living, all professional government dictated licenses and participation in various organizations are a huge economic mistake but more importantly they are a huge impediment to individual freedoms.
A Programmer Competency Matrix (Score:5, Interesting)
My lessons (Score:5, Interesting)
Re:Pick a different job. (Score:3, Interesting)
Of-course unionization is government mandated licensing, show me a union in the USA and I will show you a special class of people protected by government from free market competition.
I do not have 'right wing talking points', I do not fit into your 'right/left' ideology. My belief system is based on a very basic principle of individual freedoms. Individuals are above the collective, the mob cannot have special privileges at the expense of individual rights. A society where a mob can steal rights of an individual has no right to exist.
Advice to my younger self considering an IT career (Score:4, Interesting)
Awkwardly career-centric question (Score:4, Interesting)
As a sales guy (ducks) (Score:5, Interesting)
I work for consulting firms, selling both flesh-by-the-month and fixed-budget custom dev/integration. Here's what I'd like begining devs to know:
1- be presentable. Be clean, pleasant, non-threatening (agreed, that means be lame. Lame is good). You don't *have* to wear a suit and tie (though if you want to move up, you probably should), but at least clean jeans (chinos is much better) and a top with a collar (polo is OK). "Town" shoes are much better than hiking or sport shoes. Needing to express your personality by shocking others is pretty much a dead-end. It's not "look how much you need me that I can bug you by being an ass", it's "look how much I'm sabotaging myself by making my self be a problem".
2- don't be afraid to say "no" and "I don't know". And don't say anything else instead (like "yes" or "this idea/tech sucks"). If your client/boss is asking for unrealistic, impossible stuff, just say so, or at least say you need to check, don't accept. Saying you can't do something, or something is undoable, will hurt you and others a lot less than accepting and then not delivering. Also, "I can't do it" and "it's undoable" are not the same. Maybe you need help from someone else. Maybe you need training.
3- Be proactive. Learn new skills and try to help people around you. You boss mainly. If you spot a problem or a potential sale, say so. Don't make a huge issue out of it, don't get frustrated if it doesn't get top priority, but do point out issues, and if you can, solutions.
4- be patient. Many youngsters have this mental image of where they want to get, and how good they are. You'll probably get there, but not in 6 months. You *will* have to work on nonsensical doomed projects, with idiots as coworkers and bosses. That doesn't prevent you from building skills (technical, personal , organizational), networking and building up your brand...
Re:Pick a different job. (Score:2, Interesting)
I've had quite the opposite experience. I've worked multiple union and non-union shops, and the only thing the union shops had going for them was slightly more pay. The culture sucked. The managers really sucked and were sexist dicks. The waste of resources was astounding. Few people put in more than three hours of work a day (I don't consider this to be a positive thing)... and, most importantly - all the most skilled people who were the most enjoyable to work with quit because the culture was so shitty.
Now I work non-union and it's a bit more stressful, yes, but I don't feel the us-against-them nonsense between managements and underlings, and I don't have to put up with idiot incompetent co-workers and managers to the same degree. Oh - I also have better benefits and a pension plan than any union shop around here.
Don't bother with programming languages. (Score:4, Interesting)
Learn principles and techniques. A little theory. Use programming languages to help you learn it but do not obsess over the language. All programming languages suck, just to a greater or lesser extent and some in more interesting ways than others. But basic principles never change.
Writing (Score:5, Interesting)
I'm going to answer this in a different way: what I knew when I started that I think most programmers, and most people, don't. That may sound arrogant, but I keep seeing it every day of my working life.
I wasn't a computer science major or anywhere close: I was a film major and English minor. It was the English that has helped me more than anything learn very quickly certain secrets to programming effectively. And yet it wasn't even the English classes themselves, because a lot of what is fashionable to teach in English [paulgraham.com] is misleading or harmful.
What really happened was a certain approach to writing. It is taught clearly in just a few books, like The Elements of Style and On Writing Well. Reading these books literally changed my life. If I were to try to summarize it, it would be that the goal of writing is to reach the reader as plainly as possible, instead of writing in a flowery, fancy, or important-sounding way. To do that actually is the greatest amount of work. It actually is the opposite of everyone's inclination. Even for professional, longtime writers, it doesn't happen on the first draft or even the seventh draft. It involves adhering to certain non-glamorous principles like using as few words as possible and preferring the short word over the long one. It means putting yourself in the background. In short, in trying to be elegant [paulgraham.com].