16 ms·
I've been programming for a long, long time. Went to college for it when I was a pre-teen. The more and more I code the more I see it closer to something like m
by 3pt14159 6y ago
I've been programming for a long, long time. Went to college for it when I was a pre-teen. The more and more I code the more I see it closer to something like music than something like engineering. Getting a little garage band together isn't hard. A couple years of practice and you and your friends can play at a little bar or at least at a high school shindig.
The same is more or less true for programming. A simple stack of JS, HTML, and CSS is pretty easy to get going. And if you're content to make marketing sites for advertising companies or similar, then go nuts. That's your simple jam and you rock out on it as much as you like.
Other people want to learn violin or weird keys or timings or cross rhythm. They want to woodshed some African drums and mix them into complex arrangements. And you know what? It is harder than playing a simple guitar for a simple song.
We have the same thing with software, and once you've put in the years you find a sort of series of specializations that make you stand out a bit more and get you a bit more money.
So when people say "programming is easy" what they really mean is that it's easier than most people expect it will be for the financial incentives it provides. Compared to, say, structural engineering which takes four years of focussed study then a long period of practical understudy, software is easy and it pays more. Almost any structural engineer can become a data analyst or junior data scientist and make around double the salary within a year or two.
Yes we've all had the frustrating semicolon days, but there are highlights too. Fast feedback, ease of learning new technologies, ease of scaling to millions of customers. There are many advantages and I think they make up for it.
- hsitz 6y ago"I've been programming for a long, long time. Went to college for it when I was a pre-teen." Yet you don't tell us how old you are, so it's hard to get a grasp for how long you've been programming. As someone who first started programming in 1979, I notice that there are plenty of people who say they've "been programming a long time" who weren't even born when I started programming. This isn't a criticism, just a comment that we don't really have any idea how long you've been programming. I can picture a 29-year old saying the same thing you did. Time is relative, something that becomes more and more clear, I think, the older a person gets.
- minitoar 6y agoGoing to college for programming must mean they are quite young indeed. When did colleges even start offering programming degrees? Unless maybe this is some sort of vocational college.
- musingsole 6y agoYoung is relative... Computer science degrees have been available in colleges for 20+ years
- Jtsummers 6y ago20+ is technically correct. NC State was celebrating 40 years of CS in 2006 or so and they weren't the first. CS degrees have been around since the 1960s, so 50+ years at this point of CS as a separate degree program in the US. Apparently Cambridge offered their first CS degree in 1953.
- chrisco255 6y agoYes, but they took quite some time to spread to the whole country and to every major university. That didn't really start until the 70s and 80s (in line with when NC State got established).
- uncletaco 6y agoMy graduate school's CS department is older than the university it now belongs to.
- deleted 6y ago[deleted]
- arethuza 6y agoManchester University has had a CS department and degree since 1965: https://www.cs.manchester.ac.uk/about/history-and-heritage/ https://www.cs.manchester.ac.uk/about/history-and-heritage/
- 6y ago
- marktangotango 6y agoI don't disagree but the idea of equating software development with some sort of artistry also allows the existence of the 10x programmer as, you know, a more gifted artists. Whether any one of us believes in 10x'ers aside, there are a lot of problems with this from the perspective of those paying the salaries, not least of which it means developers are not simply interchangeable cogs in a machine/process. The most horrendous application I ever worked on was a java servlet app where the original developers didn't understand thread safety. They didn't let that stop them though. Every collection was a synchronized list or concurrent hash map, every access was wrapped in a mutex or synchronized{} block. It was really really bad; lots of race conditions and deadlocks, lots of production outages and a lot of "add more locks". In the neighborhood of 200,000 lines of this. It was "artistry" of a sort. That application got the company to IPO, so the business owners were overjoyed with it. What's the point? Gatekeepers can gatekeep, artists can create art, but even the most banal garbage can make someone a lot of money.
- 3pt14159 6y agoWell there are more productive programmers and less productive ones. It's pretty obvious to me. I don't like trying to quantify it as 10x or 20x, because it's kinda pointless to try and I don't view it as a scalar. I can't program graphics cards, but I can rebuild some of the data feeds that the Nasdaq pipes to hedge funds. I don't think a game developer could do what I do. It's the specialization that really counts, not the raw productivity, but raw productivity does count too. In terms of your example, yes. The problem with software is that a bad architecture can complete hobble it and there are plenty of cases with unbeautiful code that makes a pile of money. I think there is artistry in software, but that wasn't the primary reason I compared it to music. I was trying to express the vastness of the domain and the range of complexity and how one could find a part in the search space that is simple enough to be called easy. Hence the garage band metaphor. Not everyone is going to be writing compilers. Some people don't want to throw their brain at a heap of complexity all day long. They just want to make pretty buttons that have a satisfying snappiness to them and call it a day. What I'm trying to say is that there isn't one "programming" and for the people that need to hear "programming is easy, anyone can do it" in order to get the courage to try to take it up, I think that message is good. It doesn't mean they'll be working for Nasa on space probes, but they can make a comfortable living on low stakes stuff and have fun while they're at it.
- dr_traktor 6y agoComparing it to engineering vs music is missing the point. The keyword is craftsmanship. I've graduated and have done work as an electrical engineer, and have become a programmer over the years for financial reasons. Whenever I do engineering or design work, I feel they really are very similar to programming. And they probably are similar to music, although I lack comparable proficiency in that field. And the key insight for me was: the more you do any of this stuff, the better you become. The time you spend with thoughts about it, or practicing it, it slowly changes you. It changes the way you think, the way you approach the problems. You become experienced. And it does not seem to end, there are always new revelations, and you can always find fault in yesterdays work, that you could probably do a little better today.
- jussij 6y agoI'm a self taught programmer with a engineering degree. I never really did engineering as a career as my first job out of university was as a software developer. What I remember from that time and why I think I picked up programming fairly easily was my engineering degree gave me the skills to think through a problem. I never really had trouble planning out my software designs even though I had no formal training in that area. So in that sense I agree that these two disciplines appear to be similar. I put this down to the problem solving skills I learnt through my Engineering degree.
- the_duke 6y agoProgramming is craftsmanship. At scale and with long-term projects it requires knowledge, mastery of tools, foresight, experience, intuition, creativity, planning and many judgement calls. This is not special. The same is true for many other occupations. Be it carpentry, electrical engineering, finance or, yes, even marketing. In a lot of ways it is easier than others, because (non-architectural) mistakes can be corrected a lot more quickly, and there is a plethora of (often free) learning materials, knowledge resources, tools and and projects to build on that other fields can only dream of. I think many programmers have minimal experience with other jobs, and assume that coding is somehow more elevated or demanding than other professions, while the reality is quite different.
- redisman 6y agoI agree and that gives you a better framework to improve yourself too. If you think about woodworking as an analogue you'll want to learn about new types of wood, new tools, woodworking design and history, contemporary woodworking design and technologies, try to make every chair you make more perfect than the last, etc. There's no one true way to make a chair, it depends on who will use it and how you're feeling. Craftsmanship does include art in it.
- danaliv 6y ago> I think many programmers have minimal experience with other jobs, and assume that coding is somehow more elevated or demanding than other professions, while the reality is quite different. As someone who has worked in a few different fields, this x 100. There is nothing "special" about programming.
- mywittyname 6y agoI would say there's nothing special about programming compared to other types of engineering. But professions like Nursing are also quite rigorous in educational requirements, but nurses don't engage in the type of long-term planning required in engineering. I do think the plan-building aspect of engineering adds to the overall difficulty of the profession. Following an existing flow-chart is different than building a flow-chart.
- joelbluminator 6y ago> So when people say "programming is easy" what they really mean is that it's easier than most people expect it will be for the financial incentives it provides This. Very well said.
- rorykoehler 6y agoI’ve had a similar thought recently regarding music and programming (I studied music but now work in tech) but from a different perspective. The truly great work is imprecise. It’s not perfectly structured. It breaks the rules. You have to feel it instead of think about it directly. In fact trying to quantify it and make it perfect reduces the quality of the end result. You have to learn all the rules and then throw them away. The more and more I age the more I’m convinced we already have all the answers built in for anything we could wish to explore in this universe but our conscious is mostly incapable of accessing it. So yes programming can be easy, even the hard stuff, but we can only fleetingly tap into the subconscious which allows it to be easy.
- GnarfGnarf 6y agoI wrote my first program in 1965, and have been programming since then. I got my first job in 1970 with a B.A. and a grand total of a one week course in FORTRAN. The job required writing Assembler on a 32K machine. Still can't get it right :o)
- twobitshifter 6y agoI agree and I’d say the semicolon days are about gone with all the automatic checks done on today’s code. Compared to what I had to endure when I took my first CS class with Java 18 years ago, typo bugs are far fewer. Beginner programmers lives have been greatly improved by IDE enhancements. Almost too much. In code reviews, I’ve seen stuff that is a brand new language construct. When I ask the dev about it, it’s just something that the IDE suggested as an improvement. “The IDE told me to” is a little scary, but maybe not any worse than a stackoverflow post.
- devoutsalsa 6y agoToday is error-RPC-no-connections-available-but-I-restarted-everything-I-need-a-beer day XD
- dzolob 6y agoDone properly, data science is hard.
- Alex3917 6y agoConsider that to make the majority of the most successful startups of the last twenty years -- Facebook, AirBnB, Uber, Twitter, Pinterest, etc. -- you don't need much more programming ability than you'd get from a six month boot camp. And that's not just to make an MVP, it's to get them into the tens of millions of dollars of profitability. If that doesn't qualify as easy, it's hard to think of what in life would qualify.
- nonameiguess 6y agoFive out of however many hundreds of thousands tried doesn't make it easy. It may not take technical mastery, but it still takes luck. Arts aren't necessarily different. Lil Nas X spent a couple hours on a cheap camera with a few friends throwing a video up on TikTok and suddenly has Billboard's top single of all time. I don't want to crap on the guy's talent. His songs are catchy. But he didn't exactly have to cut his teeth at Julliard. But you don't see people saying truckers should learn to sing and dance.
- girishso 6y ago> Fast feedback That's what made me choose programming as career over other options available at the time. Good reminder after many years!
- yourabstraction 6y ago> The more and more I code the more I see it closer to something like music than something like engineering. For many years I've also made the comparison between programming and music. You can learn the theory (CS or music) in school, but to be truly great as either a programmer or a musician takes passion, obsession, and dedication. I'd actually rank obsession as being the most important trait, as it can drive the other two. I'm not saying obsession is always healthy, but it's clearly a key driver in the skills of elite performers in many disciplines. I think the main reasons behind the similarities of the two is in ease of access and the rapid learning feedback loop. In both programming and music, you can buy enough gear for a few hundred bucks to experiment with your craft to your hearts content. In both, mistakes are cheap, if you play off key or write a bug you're not likely to damage anything in the real world and can get feedback to improve. In both, you can riff off the works of others easily to get inspiration and get up to speed with the latest developments. And feedback is fast, as your ear or your debugger will alert you to either successes or mistakes. The above qualities basically make a recipe for quick and unbounded learning, which leads to exponential development of skills. This is a recipe for not only quick learning, but the building of intense obsession in the right mind, as the rapid feedback system fuels the brain's dopamine reward system. It's no wonder when we see a young person who's exposed to programming with plenty of free time that we're often amazed at what they create. The same is true of music. A slight tangent, but my thoughts above are why I always ask people when/how they first learned to program during an interview. A new grad who's been obsessed with computers and coding since age 13 is going to run circles around someone who started in college because they thought it was kind of interesting and their friends told them how well pays. It's a simple question to ask, a nice ice breaker, and can provide a very useful signal for hiring if the interviewee exudes passion in telling you about their coding genesis story.
- nonameiguess 6y agoI think analogizing with structural engineering still fits more than you're giving credit for, at least in terms of how talent does or does not scale in the absence of a formal engineering education. My dad effectively rebuilt every part of our house with only "formal" training as a plumber. My great-grandfather built his house completely from scratch, himself, and picked cotton before that. But neither of them could have built a skyscraper. There's a difference between someone who can build stuff, even incredibly useful stuff, and a true engineer. Software, for whatever reason, just tends to lionize and monetarily reward hackers over engineers. I'm not exactly sure why this is. Maybe we just get so much more to start with? If you wanted to put up a skyscraper or build another Brooklyn Bridge, you pretty much need to put together all of it. Only the land is there already. On the other hand, with software you can seriously stand on the backs of giants. Someone else already laid fiber cables beneath the oceans, put satellites with radios on them calibrated to deal with special relativity in space, processor makers basically use black magic to hide all of the terrible, inefficient coding we do and make it fast anyway, database engines, exponentially cheapening storage, and CDNs do so much of the heavy lifting of caching and delivering content, and we profit. I guess skyscraper builders get some pre-existing infrastructure. They don't need to lay their own roads or build new electrical stations or steel mills. But still, software feels like a business where a lot of people learn quickly how to build their own backyard tool sheds, then go apply to design skyscrapers and get mad when the interviewers expect them to know the principles of physics underlying how it is possible to get 100 stories of steel and glass to not fall over in the wind.
- birdyrooster 6y agoI audited a graduate level VCD course when I was 12 does that mean I can say I have been going to college for VCD since I was a pre-teen? What does it even mean to be a preteen in college?
- eitland 6y ago> I've been programming for a long, long time. Went to college for it when I was a pre-teen. The more and more I code the more I see it closer to something like music than something like engineering. Getting a little garage band together isn't hard. A couple years of practice and you and your friends can play at a little bar or at least at a high school shindig. > The same is more or less true for programming. A simple stack of JS, HTML, and CSS is pretty easy to get going. And if you're content to make marketing sites for advertising companies or similar, then go nuts. That's your simple jam and you rock out on it as much as you like. Nice point, beautifully laid out! Favourited and added to my quotes file!
- holri 6y agoThe difference between music and programming is that programmers seems to earn a lot of money. So a lot of untalented people want to be programmers. But not everyone is suited for programming and not everyone can be a good pianist. Imagine the state of music in a world with a lot of rich pianists and everyone wanting to be a musician.
- angarg12 6y agoRather than music, I find a much better comparison in sports. Football is easy. Anyone can gather friends in a court or park and kick the ball for a while. Kids and middle aged fathers do it all the time. However not everyone can play professionally, say in a second or third division, and earn a living wage out of it. And still less people make it to the top teams of the first division, becoming millionaires and celebrities. The ratios are different, but these groups roughly map to people ability to code. Probably most people can "write code" to some extent. Few of those will be able to make a career out of it as professional developers. And yet a smaller number will make it to FANG and other top companies, making 6 figure salaries like it's nothing.
- blub 6y agoIt's intriguing seeing how often we reach for metaphors when trying to define software engineering. Some say it's like music, others like painting, the crafts and so on. What often gets overlooked is that those areas are thoroughly anchored in the physical and sensorial world - one perceives their work and usually physically interacts with it. For software, one sits most of the time in front of a glowing screen and the rest is drawing boxes and text on paper/whiteboards (plus meetings). Certainly doesn't sound as glamorous and one is left with imagining their work most of the time. That's why such comparisons fall flat and at least to me it seems that an attempt is being made at rubbing some "cool" on something that is typically perceived as uncool and for a regular human looks mind-numbingly boring. So programming's not hard because it's like <arts/crafts>, but because it's abstract and mechanical and emotionless. It's an acquired taste which needs fertile ground to develop in, when most people understandably don't have that, not even for a simple stack of JS, HTML and CSS.
- cutemonster 6y ago> Went to college for it when I was a pre-teen Does that mean you studied software when you were 11-12 years old (pre teen: before 13-19 y/o?), together with college students typically 19-25 years old? (Sorry if it's a silly question)