7 ms·
How to be a Programmer: A Short, Comprehensive, and Personal Summary (2002)
A Short, Comprehensive, and Personal Summary
- saddino 13y agoHere's a shorter version: Are you so inspired by a software product or service that you are driving yourself mad thinking about how it was created? Great, do whatever you can to write your own version. Keep at it. Seriously, keep at it. Are you so obsessed with figuring this out that you are unaware that hours are passing by while you work? Awesome. You have discovered a true passion. Now you don't need to read things titled "How to Be a Programmer" because you will drive yourself to become one innately. For everyone else, go ahead and try to read things titled "How to Be a Programmer" but don't expect it to actually help you, you know, BECOME one.
- GuiA 13y agoWow, hold your horses cow boy. Did you even read the article? It's about being a programmer in the real world; that is how to communicate effectively, know when to tell management that you think a certain decision was a mistake, how to approach project schedule estimation, and so on. As a young hacker who's not sure yet where he belongs in the world of tech & science & engineering (worked freelance, worked in startups, worked in research as a grad student, worked in larger companies, and I still don't know what I want to spend my life as a hacker doing :-), I found it extremely useful and well written.
- yeukhon 13y ago+1. Your short version pretty much summarize what other 1000 people would say. And that's what I told people who came to my school's open house today: look around you and see what kind of things you wish you could control. You want to be able to get all the files with certain prefix? Figure out that linux/windows command. The title "A Short, Comprehensive, and Personal Summary". This is not short. It's pretty verbose.
- gknoy 13y agoIt's hard to be short and comprehensive. This is shorter than a book, longer than a magazine article. (55 pages: OK, maybe a short book.) "Short" is relative. :) His coverage of debugging, and how it's critical to overcome fear of breaking things, and of asking the right questions of how things might fail in this way, is a great explanation.
- Ma8ee 13y agoExcellent way to become an arrogant coding cowboy. "My passion is so great so there is nothing anyone can teach me. Just by hacking alone in my basement my innate ability to write efficient and correct code have started to bloom."
- drunkpotato 13y agoWhat is wrong with us in this sick, perverted, twisted, dying and rotting industry? If you encounter these problems, start applying to a new position. Don't deal with management; don't "educate" them. Don't fix the organization you've tricked yourself into joining. Just polish your resume and leave. It seems like we're an industry that defines Stockholm Syndrome.
- ninetax 13y agoWrong thread?
- drunkpotato 13y agoHah, no, but I see I didn't provide enough context. I was referring to the subsections in "Personal Skills", "Team Skills" and "Serving Your Team". I also freely admit I am jaded by poor management in the past that has not responded to the kinds of advice given here.
- mbrock 13y ago"Go home if you have a contagious disease. You should go home if you have suicidal thoughts. [...] You should send someone home if they show serious mental malfunctioning or signs of mental illness beyond mild depression. [...] Don't use cocaine or amphetamines to combat fatigue." :/
- deleted 13y ago[deleted]
- MaulingMonkey 13y agoTake care not to throw the baby out with the bathwater: fixing the problem can be easier than finding the perfect pink elephant and praying it stays that way. Of course, do take care to throw out the bathwater.
- fit2rule 13y agoPhilosophically, programmers can do anyones job, as long as that person is willing to describe it in a way that it can be abstracted properly. Programmers are unique in the world, in a philosophical sense, in that the skills and techniques of programming can be applied to any human subject, and seriously productive results can be attained. Computers are an "infinity machine" in that any single subject that a human being can describe, using words, can be in some way supported by computerization. So if you think an organization is broken, programming can often-times fix it. Good programming, which encodes the domain-specific knowledge of the organization, can be applied to any particular role in human existence - including that of management. In that sense, programmers are able to operate exterior to any organization - and must, in fact, if they wish to deliver a productive result - and apply their skills to that organization in order to improve it. Programmers who have worked professionally in any industry have an intuitive understanding of this fact, and its strengths. So I would put it to you that its not Stockholm Syndrome you're observing, but rather this simple fact: Programmers > Managers. (Well, Programmers who deliver working systems, that is..)
- vayarajesh 13y agoNice read.
- michaelchum 13y agoInteresting educational read, wise experience from a programmer, definitively to read for beginner programmers like me!
- ninetax 13y agoWoah you weren't kidding about "Comprehensive". Yet it really is short and seems to encapsulate every thing it talks about pretty well. Thanks a lot for this!
- shazzdeeds 13y agoThe last section on organizational chaos and the magic power is key.
- Iftheshoefits 13y agoI disagree. I think it is only very narrowly applicable, in particular to companies that are technology-centric (i.e. that have as a primary product something that is technology related, such as a software product), and even then it only applies to a fraction. In most companies, technology-centered or not, the non-engineers have a large amount of power to "create and sustain" something far more important than code or systems: institutional political power. I don't care how good a programmer one is, in such organizations institutional politics almost always wins. The old addage, "It's not what you know but who", applies here, as in any other industry. Talent is only good to carry a person so far, within the confines of somebody else's business.
- Jugurtha 13y ago>>But it is really child's play compared to everything else >>that a good programmer must do to make a software system >>that succeeds for both the customer and myriad colleagues >>for whom she is partially responsible. Why the use of the word "she" ? I see a lot of articles written where the undefined person will be a she. I speak french, and "person" is a feminine name, so you can say about a person "she", but why in English ? Especially when in male dominated jobs like programming. A programmer is likely to be a he than a she, so why try this hard to be politically correct.
- justatdotin 13y agowhy not?
- V-2 13y agoIt's unconventional, and hence distracting. It's a mental bump, it gets you thinking "why so?" instead of focusing on the text. Pretty much the same problem as violating coding convention in source code.
- garg 13y agoHuman language is and will always be much more forgiving than coding conventions in source code. It wasn't distracting for me and it is fairly conventional now to use he and she interchangeably. Conventions change in language.
- aaren 13y ago' she ' occurs a total of four times in the entire thing. If you're getting noticeably slowed down by these four mental bumps then perhaps it is more you and not the text.
- jkarni 13y agoI don't get your point. Obviously if it's a really bad convention (naming all predicates '{something}Th1s1sAFuncT10nThatReturnsABooleanValueAndILikeCheese', say), it might be worth breaking, even if it's initially distracting. Presumably you want to be making the point that this is a convention that isn't worth breaking?
- JackMorgan 13y ago"Programming languages should really be called notations in that learning one is not at all as difficult as learning a natural language." Brilliant! This whole section on choosing a language is great. "One tends to think of a large system that has components in three or four languages as a messy hodgepodge; but I argue that such a system is in many cases stronger than a one-language system..." This part sounds insane until you start working with eventually consistent messaging like: http://www.reactivemanifesto.org http://www.reactivemanifesto.org
- rrjanbiah 13y agoMy favorite part is How to Deal with Organizational Chaos http://samizdat.mines.edu/howto/HowToBeAProgrammer.html#id2855892 http://samizdat.mines.edu/howto/HowToBeAProgrammer.html#id28... especially: Engineers have the power to create and sustain.
- wpnx 13y agoI kind of wish each section was a little longer. This would make for a great book :)