11 ms·
Advice From An Old Programmer
- amirmc 15y ago> "People who can code in biology, medicine, government, sociology, physics, history, and mathematics are respected and can do amazing things to advance those disciplines" True. I have a theoretical physics friend who's now applying a ton of machine-learning techniques to biophysics stuff (in an academic setting). I've no idea exactly what he's doing other than he's always snowed under and people keep coming back to him for more.
- sdfjkl 15y agoMy favorite example of this is OsiriX[1], a GPL'd medical imaging (DICOM) viewer written by a radiologist who couldn't find existing software that did what he wanted. It's now an established part of the DICOM world. [1] http://www.osirix-viewer.com/Snapshots.html http://www.osirix-viewer.com/Snapshots.html
- samuel 15y agoI have known people who started as programmers and became highly valued domain experts, so it works in the other way, too.
- zedshaw 15y agoNow that is interesting. I'm trying to imagine how you would apply machine learning to biology. Related to DNA sequences probably?
- crntaylor 15y agoHere's just one possibility. Say you want to do genetic testing for susceptibility to a particular trait, for example heart disease. The human genome is vast, and no human could pick out significant patterns relating to heart disease even with years of experience and specialist training. However, this is precisely the task at which machine learning algorithms excel. You split your data into two sets: people who suffered heart disease by time X in their lives, and people who didn't. You then apply a machine learning technique (some kind of classifier - maybe a logistic regression, support vector machine or a decision tree) to the data set, and it picks out features (i.e. particular gene sequences) which are most strongly predictive of heart disease. If you've chosen the right technique, you can not only predict a binary yes/no response, but you can predict a probability between 0% and 100%. Now you can do genetic testing on an individual who hasn't suffered heart disease yet - with a suitable portion of their genome, you feed it into your classifier and it spits out the probability of them developing heart disease by stage X in their life. Of course, the inputs don't have to be genomes (and quite commonly aren't). You might consider someone's age, calorie intake, level of exercise, social class etc. all as valid inputs to this kind of algorithm.
- juliendsv-mbm 15y ago"People who can code in the world of technology companies are a dime a dozen and get no respect" , I disagree with that, I think you got a lot of respect in a company that is focused on technology. But If you are working into a marketing company in the development team, then yes you will not get much respect..
- mtrimpe 15y agoI'm sure the OP would agree that a coder in a marketing company would get even less respect as you'll merely be executing their (not that technically challenging) vision. If on the other hand you're in an industry where your skills as a coder enable those around you to do new things they otherwise would not be able to do, you'll be revered for that.
- OoTheNigerian 15y agoWhat I think he means by "if you have coding as a secret weapon" in this case would be, if you are a Marketer that can code as an extra, you will be highly valued. I think it is hard to argue with that.
- gaius 15y agoDo you know any such marketeers?
- tsunamifury 15y agoI am a marketer who can code in a rudimentary manner. I've done projects on a shoestring budget that have netted companies thousands of new customers and hundreds of millions of dollars. What helps is that even if I can't code the entire project, I do know how to properly source and manage people who do. I have enough of an understanding to respectfully manage all the business and technical partners in a marketing project -- and help them work together in a way that produced a better sum of the parts.
- hieronymusN 15y agoI'm a web developer in a marketing company. What you said is partially true, especially if your management doesn't really understand development (highly likely.) However, if you are able to look at the work that comes down, and come up with better ways to do it and engage management (rather than just being a set of hands to do their bidding) you can increase your value. You will never be as valued as you would be at a tech company, but you can try. That said, there are a number of small development companies that focus on marketing. Meaning, they are small developer run companies that take on contract code work for marketing firms (mobile apps, HTML5, etc.) and they are by default developer friendly. If you're a good dev being beaten down by management in a marketing firm, then either find one of these companies or go start your own.
- revorad 15y agoYou're much better off using code as your secret weapon in another profession. That's why Bezos is my hero.
- nadam 15y ago"People who can code in the world of technology companies are a dime a dozen and get no respect" Generally in business, those people whose job title is 'programmer' or 'developer' or 'software engineer' get relatively little respect even with lots of experience. (I am 37 years old and programming since 12) Previously I thought the only way out of this is to become a 'manager', which I never really wanted to do... Recently I have discovered 'quantitative finance' which is a quite respected and interesting geek profession (with lots of math, which i like), and I am planning to transition into that in the long term. (Theoretically a relatively smooth transition is possible because there are 'quant developer' jobs out there.)
- atomicdog 15y agoa) Is "respect" really so important to you that you are willing to sacrifice a 25 year career? Surely if the pay is good and you enjoy that's all that matters. b) By switching professions to a more "respected/cool" one do you not think you're just contributing to the problem of programmers not being taken seriously?
- DougBTX 15y ago> more "respected/cool" By using "cool", I get the impression that you're thinking more about respect from people outside work, rather than those you are working with. I think the article was talking about respect from the people you work with and work under, in the sense that if you are not respected, then you likely won't get paid what you are worth. From the point of view, point (a) is a contradiction - if you are not respected by the company you work for, the pay won't be good.
- lrobb 15y agoPay isn't that well correlated with respect. Exhibit: The "starving artist" vs the "slimeball lawyer".
- michaelochurch 15y ago
- phatbyte 15y ago"Finally, I'll say that learning to create software changes you and makes you different. Not better or worse, just different. You may find that people treat you harshly because you can create software, maybe using words like "nerd". Maybe you'll find that because you can dissect their logic that they hate arguing with you. You may even find that simply knowing how a computer works makes you annoying and weird to them." This is very true, unfortunately being a programmer requires dedication, non-stop learning to keep up. And this can lead to a very lonely life in a way that you don't socialize too much by favoring what we love to do. If you live with a tech-oriented city you should be fine, but for the rest of us it sucks a little, knowing that most of your friend/relatives don't understand what you do, and why do we spent so much time in front of a screen.
- narag 15y agoMaybe you'll find that because you can dissect their logic that they hate arguing with you. I'm glad I don't need to argue with "them" in my current position, but I've seen this effect a lot: the most manipulative people in a company are against any logical processes.
- hef19898 15y agoAnd those people usually get their way, too. Quite frustrating to deal with them, mostly when they come back to you after their way didn't work out and want you to solve it.
- zerostar07 15y agoI think this piece keeps coming up every so many days. It's a great piece of advice, and i think most developers come to the same conclusion after a few years. I think a useful corrolary from this is "Do not reinvent the wheel all the time by changing programming styles, instead try to extend the frontiers of technology" (I 'm looking at you, web frameworks).
- lrobb 15y agoThis. I was reading someone's blog the other day about how they were rewriting their app in node.js... whereas a few years before that, I remember that they had rewritten the app in rails... Their product could've been so much further along had they just stuck with php/.net (whatever is was originally).
- gaius 15y agoAn app that can be rewritten on a whim is not a significant app. Harsh but true.
- akrymski 15y agoYep, and it always reminds me of how far Apple came with Objective-C. Microsoft and Google continually push new languages on us, and yet Apple developers used Objective-C for over 16 years just fine, and continue to push technology barriers with it. Apple instead chooses to improve supporting tools - XCode, etc. On the other hand sometimes you have to take a step backward to take 2 steps forward. Sometimes thats a project rewrite, sometimes its a new programming style, new code layout, a new IDE, or a new programming language. A language is just a tool, and picking up a new one shouldn't be hard. Its natural that we tend to migrate to simpler and more productive tools over time.
- pyre 15y ago> Apple developers used Objective-C for over 16 > years just fine The initial release of OS X was March 24, 2001. IIRC, ObjC was not used on MacOS 9. Unless you're talking about the creation of OS X out of NeXT (which Apple purchased in 1996), and therefore Apple employees (not just 3rd-party devs that work on the Apple platform).
- vacri 15y ago"Programming as an intellectual activity is the only art form that allows you to create interactive art." (his emphasis) Kinetic sculptures? Fashion? Hell, go to a science museum and you'll find endless halls of interactive art, little of which involves programming.
- zedshaw 15y agoLet me know when you can tell a Fashion designer you hate their dress by writing on the back of some girl wearing it. Oh, and doing that without software.
- vacri 15y agoEh? Are you saying that the random hate commentary at the bottom of online articles is required for something to be art? Your comment just doesn't make sense.
- padobson 15y agoWhen I read pieces like this, it reminds me there are many reasons for learning to code. Some learn just because the technology is interesting. This is a fine reason, but what's interesting today will not continue to be interesting tomorrow. Some have learned to code because they want a steady job. This is an ok reason, but being an accountant, plumber, carpenter, or "running a fast food joint" has the same benefits. The best reason to learn to code, and the reason I did, is because your head is full of..... stuff. Stuff that is always there, choking out simple thoughts like "I'm hungry" or "I'm tired". And the supply of stuff never runs dry, it constantly increases and overwhelms other thought and builds up immense pressure on the sides of your cranium until your head feels like it'll burst. And the only way to relieve the pressure is to turn that stuff into code. That's why you should be a programmer.
- _k 15y agoI worked for a company where they had a student (internship) set up the LAN, among other things. He got the job done, they liked to boss him around and pretty much everyone agreed the guy was lazy and there was no way they were going to hire him, blah blah. Truth be told, you could see he didn't like it there. But they couldn't have been more wrong about that guy. And I've seen this over and over again: it has nothing to do with technology. It has everything to do with the people you work for and how big of an influence your job has on whatever it is a company is trying to sell. It's very discouraging to a lot of people when they're in a situation like that guy was. Fortunately, he only stayed there for like 6 - 9 months (too long, imo, but he had no choice), so when his time was up I asked him where he was going. He was going to work for a company that offered network solutions, he figured that was a better choice than to go work for a company similar to the one he just interned for. And he was right. I happened to know the company and the owner, so I assured him he made the right choice. I checked up on him a few months in and all I can say is: time to move on when you're in a situation like he was.
- demallien 15y ago"Programming as an intellectual activity is the only art form that allows you to create interactive art" Well, except for architecture. And industrial design. And pretty much most art that requires someone to interpret it (it depends on who you think you are making your art for - the person interpreting it, or the person watching the interpretation...)
- zedshaw 15y agoLet me know when you can tell the Architect that his building needs improvement or contact a designer about their devices. Oh, and without programming.
- ferids 15y agoAlso a part of this problem is that many programmers are assholes. Going out to the world while thinking "im to smart for the rest of the world, tha hell with them" is just a big social failure in general. One need to be able to see things out of different perspectives, a bit more open minded. Just because a person like to do other things in life then CS-stuff, does not mean they are automatically stupid. Programming is not everything in life as many would like to think. Handling different kinds of people in different kinds environments for example is much, much harder then learning how to code. Connecting this all together has made up a history of non sympathetic people doing "the coding stuff" at the office where everyone else just stop caring about these guys cause you can't really talk to them. Now im just talking about the stereotype thats has been biting us in the ass for ages. Portrayed in media etc etc This has been covered well in the beginning of the social network where Mark get lectured up by his girlfriend at the bar.... So really from experience, a good way out of this is not going to management, but just to "listen" to other people and open up your mind a bit... /coder since age of 13, 29 years now, startup, the whole 9 yards
- zedshaw 15y agoYou're right, the real way to be an asshole and have people love you for it is to say: "im too tough for the rest of the world, tha hell with them" Because being smart and confident is just uppity, but being tough and confident is baller yo.
- amouat 15y agoNothing wrong with being smart, confident and/or tough. It's being arrogant and snarky that upsets people. (I'm not aiming this comment at anyone btw!)
- edw519 15y agoThoughts from an Older Programmer... I've been programming for a very long time. Me too. So long that it's incredibly boring to me. Actually, it's more interesting to me than ever. ...I knew about 20 programming languages and could learn new ones in about a day to a week depending on how weird they were. I have a cursory knowledge of quite a few myself. But I know one really, really well. Eventually though this just became boring and couldn't hold my interest anymore. That may be because you're too focused inwardly and not toward your users. This doesn't mean I think programming is boring, or that you will think it's boring, only that I find it uninteresting at this point in my journey. Not me, and I'll tell you why shortly... What I discovered after this journey of learning is that it's not the languages that matter but what you do with them. Yes! Actually, I always knew that, but I'd get distracted by the languages and forget it periodically. Now I never forget it, and neither should you. Yes fellow programmers, this is a trap! Even after 33 years of building stuff for my users, I'll have a day when I realize that it's already dinner time and I haven't done a damn productive thing all day long. Just played around for the fun of it. (This is not a bad idea every once in a while, just as long as you know its a trap, and eventually you have to get back to work. Do this for months and you can really lose your way.) Which programming language you learn and use doesn't matter. Do not get sucked into the religion surrounding programming languages as that will only blind you to their true purpose of being your tool for doing interesting things. Yes. I've made about 4,500 Hacker News comments, but I don't think I've ever participated in a language war. Fortunately, I instinctively knew that this was pretty much a waste of time for me. Programming as an intellectual activity is the only art form that allows you to create interactive art. You can create projects that other people can play with, and you can talk to them indirectly. No other art form is quite this interactive. Movies flow to the audience in one direction. Paintings do not move. Code goes both ways. What about stand-up comedy? By definition, the audience is part of the act. Anyone can tell jokes to their cats, but killing a room is an entirely different story. (I found this out the hard way.) Oddly, with the users I've had lately, I often forget whether I'm doing comedy or programming. I have to check to see if I'm sitting or standing to be able to tell the difference. Programming as a profession is only moderately interesting. Take out the words "as a profession" and re-read that sentence. It shouldn't make any difference. If you love programming, you can easily love it as a profession (in the right conditions, of course). If you don't love programming, do the world a favor and do something else as a profession. It can be a good job, but you could make about the same money and be happier running a fast food joint. Money really shouldn't have anything to do with it. You can earn a living many different ways. Do what you love. You're much better off using code as your secret weapon in another profession. I disagree. I've met a lot of non-programmers who knew a little programming. They were more dangerous than effective. People who can code in the world of technology companies are a dime a dozen and get no respect. This was a nice post from OP until this sentence. This is just stupid. There may be lots of mediocre and poor practioners in any vocation, but good programmers and not a dime a dozen. Also, respect is relative. If you're worried about getting respect, you're worried about the wrong thing. People who can code in biology, medicine, government, sociology, physics, history, and mathematics are respected and can do amazing things to advance those disciplines. People have often asked me how I've used my programming skill to help the world. I always answer immediately, "With everything I've ever done." Sure, the disciplines OP mentions are sexy, cool, and important, but so is manufacturing stuff, distributing it, accounting for the money exchanged, and a million other "boring" things. Programming to keep the world working is just as important as all that sexy stuff too. (Maybe even more important, what were all those "sexy programmers" doing for food, shelter, and essentials when they were busy changing the world? You better believe that a "boring programmer" built something to help bring those things to them.) Of course, all of this advice is pointless. Not really. Even though I've disagree with OP on a lot of stuff, his advice is not pointless. There's something to be learned from everyone else, especially those with lots of experience. If you liked learning to write software with this book, you should try to use it to improve your life any way you can. Go out and explore this weird wonderful new intellectual pursuit that barely anyone in the last 50 years has been able to explore. Might as well enjoy it while you can. Great advice. I did it and I'm so glad I did. Many others should, too. Finally, I'll say that learning to create software changes you and makes you different. Not better or worse, just different. This is true of just about anything. And most definitely true of programming. I can't imagine what my life would have been like otherwise. (In another century, I probably would have been a cook or something. I probably would have been happy, but I'm so glad things worked out the way they did.) You may find that people treat you harshly because you can create software, maybe using words like "nerd". Maybe you'll find that because you can dissect their logic that they hate arguing with you. You may even find that simply knowing how a computer works makes you annoying and weird to them. Another hard lesson: others' opinions of you should not matter. If it does, slow down and think about this again. You should be focused on your work and your users. Don't worry about the naysayers. To this I have just one piece of advice: they can go to hell. My feelings exactly, but I'd like to think I'd use different words. Be nice. The world needs more weird people who know how things work and who love to figure it all out. When they treat you like this, just remember that this is your journey, not theirs. Being different is not a crime, and people who tell you it is are just jealous that you've picked up a skill they never in their wildest dreams could acquire. It took me a long time to realize that I was an "outlier". Once I understood that, lot of other things came into perspective. That's probably true for lots of other programmers, too. You can code. They cannot. That is pretty damn cool. Please remove the sentence "They cannot." That's bad attitude and doesn't matter. The resulting paragraph, "You can code. That is pretty damn cool." pretty much sums up exactly how I've always felt about it. Thank you, OP!
- blahblahhhhhh 15y ago> You can code. They cannot. That is pretty damn cool. If it weren't for the last 3 paragraphs, I'd agree completely. But seriously- who makes fun of developers anymore?
- opining 15y agoWould have been a great article except for the last 3 paragraphs. Instead, I like the letter from _why in this post: http://delicious.com/redirect?url=http%3A//www.smashingmagazine.com/2010/05/15/why-a-tale-of-a-post-modern-genius/ http://delicious.com/redirect?url=http%3A//www.smashingmagaz... It goes: I do not write tests for my code. I do not write very many comments. I change styles very frequently. And most of all, I shun the predominant styles of coding, because that would go against the very essence of experimentation. In short: all I do is muck around. So, my way of measuring a great programmer is different from some prevailing thought on the subject. I would like to hear what Matz would say about this. You should ask him, seriously. I admire programmers who take risks. They aren’t afraid to write dangerous or “crappy” code. If you worry too much about being clean and tidy, you can’t push the boundaries (I don’t think!). I also admire programmers who refuse to stick with one idea about the “way the world is.” These programmers ignore protocol and procedure. I really like Autrijus Tang because he embraces all languages and all procedures. There is no wrong way in his world. Anyway, you say you want to become better. I mean that’s really all you need. You feel driven, so stick with it. I would also start writing short scripts to share with people on the Web. Little Ruby scripts or Rails programs or MouseHole scripts to show off. Twenty lines here and there, and soon people will be beating you up and you’ll be scrambling to build on those scripts and figure out your style and newer innovations and so on. — _why
- DanielBMarkham 15y agoEdw's comment aside, I can understand being bored with programming. After you learn your way around a dozen or so different platforms, if you're not getting bored you might want to check to see if you don't have a bit of Asperger's. But he nails it when he points out that all of this programming talk is bullshit. It's just stuff to chat mindlessly about while you're not helping people. Programming is making computers help people. Never forget that. The more you focus on the computers part, the unhappier you are going to be. I will extend my analogy. If after the 50th article you read on HN about some upcoming technology you haven't figured out that something is wrong with your focus you should seek help. If you want theory, computer science is a great field to study. For the vast majority of us, it is not an end to itself. It's all very easy to get good at critiquing Judy arrays and suck at making something people want. You can carry on like this for the rest of your life. Don't do that. You provide a bridge to the future for millions of people. Please, the rest of us need your help.
- michaelochurch 15y agoWhen I was 21, I thought the fun part was learning new technologies and the hard, frustrating, somewhat boring part was writing the code. (I also only knew C++ and Java, so I thought the accidental complexity of these languages was an intrinsic fixture of programming.) Learning Python, then Ocaml, then Lisp, was a lot of fun. (The REPL makes a huge difference in the experience of programming. It makes the code real rather than some hazy gobbledegook.) It was even better to start using these languages for real-world problems. I'm 28 now and I find the writing of code to be the fun part, because I'm now good at it and know better technologies than C++ and Java. I get into "the zone" and before I know it, 4 hours have passed. Unfortunately, that's not the reality of industrial software engineering where, if you're lucky, 25% of your time might be spent writing code. Learning new platforms (often with so many of them that I can only learn enough to glue them together) is often boring. It's fun to learn new technologies when there's something genuinely new in them, but I'm sick of having to learn new and often less useful ways of doing old things.
- DanielBMarkham 15y agoI love programming and find it very relaxing. I would probably also like re-arranging chairs at a charity function. Or solving mathematical puzzles in books. I also love instrument flying, which is like real-time fluid dynamics where you die if you screw it up. But I've come to understand that these are just properties of the types of people who grok computers -- detail-oriented, able to spend many hours in the zone, and in love with complexity. At some point, the "benefits" from this personality type become drawbacks. There are a lot of guys spending thousands of hours on code in their spare time that might help 3 people -- who are also programmers. I'm not saying this is a bad choice. It just seems to me like we programmers as a whole like trivial things and can spend most of our time on them as long as they tickle our analytic bone. Continuing my flying example, there have been cases of people flying airplanes into the sides of mountains in perfectly good weather while they were fiddling around with the flight computer. Many of us are doing the same thing -- only in very slow motion. By the way, the fun part is learning the technology. The hard part is working with people to make something they want -- which is why it's about a million times more important.
- nato1138 15y ago"You're much better off using code as your secret weapon in another profession." Awesome. Well, I am a classical violinist, and I will use programming to aid me -- now with confidence!
- api 15y ago"People who can code in the world of technology companies are a dime a dozen and get no respect. People who can code in biology, medicine, government, sociology, physics, history, and mathematics are respected and can do amazing things to advance those disciplines." That is the best thing in his advice column. It's hard to pull off though. I started programming at 5 and am at a skill level comparable to this poster, but I studied biology in college with an eye to doing exactly this sort of thing. Then I discovered that bio is a Ph.D's only club and that you cannot get any kind of job in the industry if you don't at least have a Masters'. I didn't want to do this for various reasons (money, not liking school), so I found myself back in IT/programming where the pay was 3X higher than what I could get in the bio world with a BS only.
- AznHisoka 15y agoWith a degree in biology, even with no PhD, it's still vastly useful when paired with programming skills. You have a good high-level overview of the problems in the industry, and that's an important first step. But it seems like in today's competitive market (especially when it comes to doing a startup), you need 2 degrees. Computer Science is not enough. It's just a set of tools but if you don't have a domain where you can apply those tools, it's useless. It's like knowing how to write. Great! if you don't got anything interesting to say, or expertise in a specific area, it's almost useless. Of course I guess you can write about writing, which is analogous to writing developer tools.
- ExpiredLink 15y agoIn the corporate world domain knowledge is more important for developers than technical knowledge. The complexity of real-wold domains (e.g. insurances, banking, ...) is amazing. For an experienced developer programming is the easy part of his job.
- MRonney 15y agoYou may find that people treat you harshly because you can create software, maybe using words like "nerd". Maybe you will find that because you can dissect their logic that they hate arguing with you. You may even find that simply knowing how a computer works makes you annoying and weird to them. To this I have one just piece of advice: they can go to hell. :D It was worth it for that alone.
- ankurdhama 15y agoWhich programming language you learn and use doesn't matter? Really ?? It doesn't matter for most people because they only know C/C++/C#/Java/JavaScript/Python and other similar language as they all provide same kind of "thinking technique" and you have been programming using same techniques your whole life. Try to learn languages like Lisp and Haskell and over a period of time they will change the way you think about programming and if something can change the way you think about solving problem, it does matter.
- zedshaw 15y agoI disagree with the idea that a language changes how you think. I think a more accurate statement is: "A programming language teaches you to think like the language's creator(s)." If you look at it from that more anthropological lens, then you start to see how you're not necessarily learning new ways of thinking, you're learning something more like a new language around a group of people who think similar. Once you understand that you start to see that none of these are any better or worse than the others, and thinking like you learned some secret weapon at the Church of Haskell will really just prevent you from exploring other cultures.
- ankurdhama 15y agoHmmm.. the "way to think" doesn't change as that would be like changing the way human brain works. Still some programming languages allows you to think more abstractly than others. For ex: You see a problem and in few mins you come up with an abstract solution because the language you use provide certain abstractions to help you solve problems. It is interesting discussion though and in my free time I do try to find about how human brain thinks :)
- leeoniya 15y ago"Maybe you'll find that because you can dissect their logic that they hate arguing with you." QFT
- msluyter 15y agoI'm also pretty old, relatively speaking, but I think of myself as young programmer because I started somewhat later in life. Early in my career I made the mistake (for me) of going into software testing and I found myself pretty bored and unmotivated. But now that I'm a dev, I've found that my passion and dedication to the craft has only grown over time. All that stops me from coding all night when I get home from work are the physical barriers (hands/back). Well, that and my girlfriend. So my advice is that if you want to stay in it for the long haul, play a long game: be passionate and consumed with what you're doing but don't burn out. Have friends, hobbies, and a life outside of work.
- exor 15y agoThe meta-topic is about disillusionment, which in this profession comes from having to learn new libraries and knowledge that you know will soon become obsolete. Reduce the risk by focusing on learning what interests you (language & industry), and accept only interesting work if possible (or create your own fascinating projects, if you're the entrepreneurial type) -- or work as a contractor, where you pick your projects, focusing on your favorite language. Don't let yourself become a cog in the machine, learning one company's proprietary library after another; to me, this is what leads to programmer burnout. One of the challenges of a programmer (among other professions) is leading a balanced life; do not let your work define you too strongly.
- zedshaw 15y agoActually, learning all the cool new stuff that comes out is what I like the most about programming. I love taking apart new stuff, watching communities rise and fall, and dissecting the philosophies that come out of it all.
- loup-vaillant 15y ago> Which programming language you learn and use doesn't matter. Do not get sucked into the religion surrounding programming languages as that will only blind you to their true purpose of being your tool for doing interesting things. That, is a dangerously double-edged wording. I see two ways of interpreting this, which are almost opposite. (1) "Languages don't matter, in the sense that whichever you chose doesn't change the end result." Which is flatly, provably false. Different languages have different strengths and weaknesses, which makes them suited for different sets of problems. Use the wrong tool for your particular job, and you will find that your program took too long to write, or has too many errors, or is too slow to execute. Just thinking about C, Python, video encoding, and quick sysadmin work should make it obvious to about anyone here. (2) "Languages don't matter, in the sense that they are a mean, not the end." Which is true for exactly the same reason the first interpretation is false: what should control your choice of language is your end goal. Personal preferences only matter to the extent you expect to have more fun. Given that your choice of language will change the end result, you'd be wise not to give it too much weight. I think the author meant the second interpretation. The key words are "their true purpose [is] being your tool for doing interesting things.". A tool is only good to the extent it serves its purpose. For any given purpose, some tools are better suited than others. If no such tool suit some purpose of yours, consider crafting a custom one. In this regard, programming languages are no different.
- zedshaw 15y ago1) No I could actually write the same thing with the same quality in most any language I know, baring a few esoteric ones like brainfuck. One language may take me longer than others, but the error rate would not be higher or lower usually. 2) This is more what I'm saying.
- cleaver 15y ago"The world needs more weird people who know how things work and who love to figure it all out." At your best you can become antibodies in the global cultural organism.
- JVIDEL 15y agoPeople who can code in the world of technology companies are a dime a dozen and get no respect Last time I went to a startup meetup the people who could code were a very small minority, and they were always surrounded by others trying to poach them for their startups.
- oconnor0 15y agoThis ("the language you use doesn't matter") has never made sense to me. I get that what we produce is of value to others while the tools we use isn't of value & doesn't - directly - matter. But, I know that certain languages are closer to how I want to think & how I want to be able to solve problems while other languages inhibit that or restrict the ways I think about & am able to express problems. I only have about a half dozen years of professional experience so perhaps I am simply naive here.
- saraid216 15y agoActually, your attitude is exactly the one that advice is trying to foster. Keep in mind that some pieces of advice are not meant to stand alone; they're reactive and meant to act as pushback against worse things. There are religious wars between various languages, as I'm sure you're aware, and the driving force between a lot of the arguments is that the tool of choice is more important than solving the problem. If only they focused more on problem solutions rather than saying that Perl has too many sigils or Java is full of silly factory patterns, they'd be able to agree that Perl is useful for many things and Java is useful in many situations.
- j45 15y agoThis is brilliant advice. "What I discovered after this journey of learning is that it's not the languages that matter but what you do with them." For those developers who have only discovered the nirvana with one, or two languages, and love their rails, djangos, closures to death, just know that if one exists, there's always the possibility that there's more. Just because you aren't aware of them doesn't mean it doesn't exist. Get building. Customers simply don't care what you code in, and very few languages give an overall edge to developing, most languages have very capable frameworks that all have their pros and cons that even out. The question is, can developers stop foaming at the mouth and seeing the world just one way? Seems a little fanatical.
- j45 15y agoWow, I can't believe saying something similar to edw519, and the OP, got downvoted. At least, kind of explain, maybe why. I don't think there's anything inflammatory here. Thanks!
- zedshaw 15y agoI wouldn't worry about it. This part of my book seems to get fairly polarize results or simple meandering talks about each person's own life and decisions so it most likely has nothing to do with your comment.
- j45 15y agoAppreciate the support, I'm not worried, not the first unpopular / misunderstood opinion I've had. Calling insecure lashing out towards others though, all, day, long. :)
- bicknergseng 15y ago"You're much better off using code as your secret weapon in another profession." Exactly. So many students and young people see programming as an end, rather than a means. They might take a class in Java or Python or somethign, hoping to learn how to write code. What needs to be impressed on people is that you don't write code to write code, you write code as part of creating an online network connecting a billion people around the world or write code to create an immersive world that tells a unique story every time someone enters it. Despite the rise of DIY blogs and webpages, people still talk about programming as if they were an artist talking about learning how to paint in order to use a paintbrush.
- rtisticrahul 15y agoLoved this article. 100 % agree with the point that the technology doesn't matter, what matters is what you do with it. Simple and evergreen advice :)
- redthrowaway 15y ago>People who can code in the world of technology companies are a dime a dozen and get no respect. I guess it just wouldn't be a Zed post without a little light trolling.
- zedshaw 15y agoYou say "troll", I say "honest".
- commieneko 15y agoI would disagree that programming is the only interactive art form. Drawing and painting are quite interactive when you take into consideration the interpretation that the audience must perform, and, more importantly, the back and forth of artists as they see and react to each other's work with their own work. In that sense programming is very much like the visual arts. For what it's worth, I've been visual artist for around 40 years and a programmer for around 35.
- andrewflnr 15y agoFirst thing that came to mind for me was various forms of sculpture that interact with people. Not far from where I work there's a shopping center with fountains right in the floor in the middle of a little plaza, but they turn off when people come close. I know there are other (better) examples. And that's not even getting into performing arts.
- demian 15y agoI would like to think that the sentiment of this piece is to move programmers to go and explore more disciplines. Or to make the point that computer programming is such a powerfull tool that it's a shame to see that a lot of competent programmers are "just programmers" who think of code as an end to itself. Higher levels of manipulation and appreciation are available. Like a car mechanic, stuck with the beauty of the engine and the physics involved, but not the freedom and happiness and excitement of the car runing .
- thewisedude 15y agoThe author suggests to not get caught up on a programming language and use that as just a tool. I think I agree. I also want to add that people get caught up on using some other tools like vi or emacs or things like that. I think they should not be taken too seriously either. Creativity and building a useful product are the most important things of all.
- stretchwithme 15y ago"Programming as an intellectual activity is the only art form that allows you to create interactive art." I will have to let the car designers know that. And the great chefs of the world. And probably dozens of other artists.