TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Hard Truths about Programming

60 pointsby turingbookalmost 8 years ago

16 comments

alkonautalmost 8 years ago
Who would be peddling the myth that programming is easy? Those who sell boot camps of course but who else?<p>I like to liken it with playing an instrument. It&#x27;s easy to make sounds but how long before someone will pay you to play for them? That&#x27;s programming (and sports, and cooking, and any other craft that is superficially easy but deep and complex crafts to perform professionally)
评论 #14714488 未加载
评论 #14715144 未加载
评论 #14719115 未加载
评论 #14714608 未加载
评论 #14714695 未加载
评论 #14714957 未加载
评论 #14714489 未加载
throwaway2016aalmost 8 years ago
Edit note: Some of the points in this article are really good so this is mostly just a rant on coding bootcamps from a bitter Computer Science grad who had to work 20 years to get where I am :)<p>Meanwhile to some of these points... we had a client recently where we built their mobile app. Large app, over $50,000 with a full API backend. Not a simple hello world. And then they hired someone straight from a boot camp to manage their mobile app, API, website, everything. And gave that person a Director title.<p>Yes, I know, titles are cheap at startups. But I guess you can learn to code in three months and not only get a job but apparently be director level.
评论 #14714657 未加载
评论 #14715002 未加载
评论 #14714269 未加载
ameliusalmost 8 years ago
Some more truths:<p>People look down on IT people.<p>Your boss wants to outsource your job.<p>You&#x27;ll be mostly doing &quot;plumbing&quot; with data.<p>You&#x27;ll make far more money from a dumb audience than a smart one.
评论 #14714382 未加载
评论 #14717572 未加载
bogomipzalmost 8 years ago
I was struck by the following passage:<p>&quot;Job search in tech is extra long and frustrating:<p>For tech jobs add about 3-5 more interviews + technical tests, online and onsite, if you even make it past the first step because a lot of times you will never hear from a company after sending in your application, or the company will stop responding to your emails at some point in the interview process. The tech hiring process also seems to take about 3 times longer than in other industries. Brace yourselves!&quot;<p>Sadly this is a very common refrain. And unfortunately this is now true even if you have years of experience. Hiring is just plain broken. Full stop. This is also a fairly recent development in the industry. The hiring process was not broken like this 8 or even 5 years ago.<p>It&#x27;s sad that an awful and unprofessional experience is now the norm and something that should be expected. I blame recruiters for much of this unprofessionalism but I also blame the companies that either permit such unprofessional behavior or else are simply unaware at how bad or broken their process is.<p>Its strange that the industry seems to have whipped itself into such a neurosis about the possibility of &quot;false positives&quot; that it has created a uniquely miserable experience that seems to embrace absurdity and disrespect as a matter of course.<p>The fact that industry seems to collectively trend hop - Whiteboarding! Take home projects! Hacker Ranks Tests!<p>This &quot;everyone else is doing it&quot; mentality only serves to perpetuate this.
评论 #14715391 未加载
pacaroalmost 8 years ago
I&#x27;m trying to teach myself foot juggling (a.k.a. keepie uppie), fundamentally it&#x27;s not hard, it just takes a lot of practice. Many of my friends growing up were really good at it. I could never understand how they were so good and I couldn&#x27;t do it at all.<p>I&#x27;m not sure whether programming is hard or not, but when my friends were practicing keepie uppie in their back yards, I was practicing programming<p>There are concepts that are hard to understand in the abstract, but one of the things that a good programmer has practiced is how to understand those kinds of concepts<p>10,000 hours is an overly literal idea, but IMVHO the core requirement for a large amount of intentional practice is the most significant hard truth about programming
dalyalmost 8 years ago
Hard? I never finished a paid project in Grad school because of a compiler error (PL&#x2F;I &#x27;copy like&#x27; bug).<p>On my first job they gave me a paper tape containing the binary to control a robot... no source available... and I had to fix a bug that caused the robot to do something wierd (atan 0&#x2F;0) on a computer with no &quot;developer software&quot; (aka no compiler, libraries, etc. ... just a raw machine with a front panel of switches).<p>On my second job I spent a couple days trying to figure out how a tape drive delivered duplicate records (worn tapes caused hardware &#x27;reread&#x27;).<p>On my third job I spent a week tracking down a memory error in a mainframe memory that caused many crashes on a computer used by over 70 programmers (every crash resulted in hex listing of 4 megabytes of memory (2 ft stack of paper) delivered to me).<p>On a later job I had to hand-recover a hard drive that contained all of our software when the &quot;extended second drive&quot; died, causing the machine to fail to boot (had to write code to read the raw drive by controlling the electronics).<p>I was nearly fired because a C compiler contained a bug that took me a week to find (bad code generation). The boss thought I was unable to program and had no idea what a compiler was, only that my project was late.<p>One boss was newly promoted. She forced me to end a several-year research project, threatening to fire me if I didn&#x27;t. She was fired for the threat but I still lost the project.<p>One boss decided to fire me so he lied on my performance report. He falsely quoted comments from other managers. Even when the other managers called HR and gave me glowing reports HR refused to change the result. Prior to that all of my reports were highly rated.<p>At one job the whole project (fixed cost, 5 programmers for 5 months) ran long (10 programmers 18 months) and they fired all the programmers.<p>One of my open source projects forked twice in one week over a dispute about goals, with the side-effect of destroying the community.<p>One of my jobs was to take over code from a programmer that died. He used the GCC -MM option to automatically generates C++ makefiles for code which generated C++ and then generated makefiles from that code. Not a line of comments anywhere.<p>That C++ code generated classes DURING THE CALL SETUP of a procedure (who knew you could do that?) so classes that occur nowhere in the software &quot;appear&quot; magically at runtime. Again, no comments anywhere.<p>I spent a day applying the brand-new &quot;Design Patterns&quot; to our software on my whiteboard. The chief designer saw it, got angry, and I got fired.<p>I was hired to move teaching software (400 Flash Videos) from laptops to the new iPad... and then Jobs announced that the iPad would never run flash. Goodbye job.<p>I maintain open source software that has run on Unix-based systems since the early 80s... and then stopped working because GCC switched to a &quot;new C standard&quot; that changed the meaning of &quot;inline&quot;, breaking the build everywhere.<p>I was hired to write &quot;pinch zoom&quot; for a touch display and camera setup. The camera driver only worked on Linux, the touch display driver only worked on Windows. Neither manufacturer would port their driver, nor release their driver source code.<p>My AI project required recognizing lugnuts... did you ever try to find &quot;big data&quot; for lugnut images? Or try to create a &quot;big data&quot; dataset?<p>I taught Data Structures at a University. At a Google &quot;job interview&quot; I failed to remember the complexity of an algorithm... and never got the job offer.<p>I have many more &quot;war stories&quot; but they all have one thing in common. Programming isn&#x27;t hard, in fact it is often the only joy on the job. But being a programmer is really hard for a lot of reasons you won&#x27;t find in boot camp.<p>I love programming. I turned down 8 job offers to become a manager (or, as I say, &quot;retire into management&quot;). I love programming. I do it every day. And every day is another day of frustration except for the final hour when it all seems to finally be working... and then back to programming and frustration, bugs, hardware crashes, lost data, impossible tasks, really late nights, and clueless bosses.<p>But I have done it for 46 years and never once had any regrets about programming. Programming is the easy part.
评论 #14714938 未加载
lordCarbonFiberalmost 8 years ago
I think the biggest source of confusion is the question of semantics. When people sit down, even here in this thread, there&#x27;s this distinct undercurrent where neither side has a clear idea what the other means by &quot;hard&quot; and &quot;easy&quot;.<p>Programming is &quot;easy&quot; in the sense that you don&#x27;t need to be a savant to do it. A lot of software development is built ontop of very well designed tools and abstractions which means you can work (in some fields) with computers without having a college understanding of higher level maths or electrical engineering. Programming is &quot;easy&quot; in the same way any trade is easy. With instruction and practice most (if not all) people can learn to some degree of professional competency. In the same way one might learn to become a plumber or an electrician a student can learn to be a &quot;developer&quot; (this I&#x27;d argue is separate from a &quot;computer scientist&quot;).<p>On the other hand programming is &quot;hard&quot;. It is &quot;hard&quot; in the sense that it&#x27;s completely alien from most people&#x27;s day to day. In the same way most people don&#x27;t think about what it takes to wire a house to code, operate a lathe, or fix a broken pipe, most people don&#x27;t ever need to think about SDLC or debugging strategies. Programming is &quot;hard&quot; because if you try to learn from fundamentals you quickly exit the nice tools and abstractions that make the professional world go and into the maths that are considerably less trivial. Programming is &quot;hard&quot; because of a cult of people determined to ignore the above reality and tune interviews to be time intensive and rely almost exclusively on your knowledge of university concepts as opposed to day to day tooling.<p>I think it&#x27;s important to remember that the field is still very nacient and the responsiblities under &quot;programmer&quot; still vary widely from job to job and industry to industry. Until this matures, a better jargon is developed for describing roles, and a more realistic attitude is reached in terms about what skills are needed for said roles I don&#x27;t see how we can avoid sending mixed messages like the ones that frustrate the OP.
xupybdalmost 8 years ago
Is programming really that hard, if you compared it to learning another skill as an adult? Like having to learn to read?
BleachNutalmost 8 years ago
I really don&#x27;t wanna see pretentious here, but does anyone actually think autodidactism is hard?<p>I have diagnosed and unmedicated ADD and I can still self-learn without too much difficulty.<p>Again, I don&#x27;t wanna sound too full of myself, but is any of this stuff really as hard the author implies?
评论 #14714768 未加载
评论 #14714467 未加载
评论 #14714444 未加载
评论 #14714417 未加载
NicoJuicyalmost 8 years ago
I think it&#x27;s hard, not for me mostly, cause I love it.<p>But I tried helping out a friend with simple assignments and the concepts are just way off too what someone is used to.<p>Same with someone doing wordpress, I do the servers myselve. Which is way too much info to share... ( Other OS)
motet_aalmost 8 years ago
I don&#x27;t know if anything similar exists in other coutries, but in France there is a growing &quot;workshop&quot; trend - which are basically short web curriculums (a few weeks learning Rails, jQuery, Symfony or others) - to turn anyone into a &quot;developer&quot;. I&#x27;ve heard many salesmen or others saying &quot;I will learn it&quot;. They don&#x27;t realize how hard it is. You can&#x27;t simply write any program with pyramids of jQuery callbacks. You need automated testing, fuzzy string matching, automata theory, murky x86_64 assembler and much more.
keithnzalmost 8 years ago
not sure that many of them are truths. Seems more like like millennial speak. &quot;Things are hard!&quot; no...relative to you and your experiences it might be the hardest thing you&#x27;ve gone through, but in absolute terms, they aren&#x27;t hard. Learning programming has never been easier. Us oldtimers can tell you stories about &quot;Hard&quot;.
评论 #14714238 未加载
评论 #14714273 未加载
评论 #14714252 未加载
评论 #14714334 未加载
oldandtiredalmost 8 years ago
From the outset, Programming is hard. Anyone who says it is easy is missing the salient point of programming.<p>That salient point is that you as the programmer have to gain an understanding of the target field you are programming for. Programming is about solving problems for someone, not just writing code to a specification.<p>A lot of the comments, so far, are talking about programming languages, programming tools, programming frameworks.<p>These are NOT programming, these are the tools you use to program an adequate solution to your problem. Unless you are continually gaining knowledge in every field that you are programming for, you are staying a novice. This does not mean that you have to be a subject matter expert, but it does mean that you have to gain enough knowledge in that field to be able to provide a solution for the subject matter experts (or others that will be dealing with your solution in that field).<p>Too often, I have found that &quot;so-called gun programmers&quot; have not only NOT understood the the field they are providing a solution for, they dictate what that field is supposed to &quot;put up with&quot;.<p>I have spent nearly 40 years programming and I have come across many people who can churn out code much faster than I, but many of those cannot provide an adequate solution for the problem at hand. They cannot and have not been taught to think outside the &quot;box&quot;.<p>I have also worked with many who cannot churn out the code but what they do give you is (at the minimum) an adequate solution to the problem at hand. They effectively solve the problem as it actually is.<p>Many years ago now, I took over the maintenance of a small system that was being used by 6 or so people. By the time I was finished, it was handling 60+ people simultaneously in at least 7 different fields for a single telecommunications project. The reason I tell this is for the following:<p>The base system in use was that venerable old girl, MS-Access 2000. This was one of the constraints of the system.<p>The original programmer was a highly paid foreigner (British) who basically told the subject matter experts that this was how they would have to work.<p>Part of the process I undertook was to find out what and how they needed to work and rebuilt the system to do it appropriate to the needs of the project. The satisfaction and appreciation was very encouraging.<p>Once this was seen, each of the other functional areas wanted to get on board. The application was then expanded to include these additional groups.<p>I got various complaints from various people about how hard some of their tasks were because MS-Access could not do want they needed. They had been told this by management. Finding out what they needed became the incentive for providing a solution. That meant for one person, I cut their after hours report production down from 3 to 3.5 hours every night to about 3 minutes (included production of reports, formatting, emailing to international management, emailing to national management and local report printing). His wife and daughter were very happy to get him home at night at a reasonable hour.<p>Programming is understanding the problem at hand and providing a workable, efficient solution using the tools at hand. This means that you have to be able to understand the subject field with enough detail to provide that solution and make it easy for the end user to use.<p>Early in my working life, I had people who encouraged this mindset and multi-discipline learning. Not everyone is capable of this, or even wants to do this. This then leads to the shmozzle that is the industry today and its continuation is the outworking of many of the major IT industry players who are interested only in the easiest way to make a profit.<p>Programming is hard because you have to become a &quot;jack of all trades&quot; as well as an expert in your own. You have to be able to document all the assumptions that have controlled your development activity, the &quot;whys and wherefores&quot;, the paths taken and in some case the paths not taken and why. Too many &quot;programmers&quot; think that documentation is not really needed. They are happy to show off their &quot;tricks&quot; to enhance their reputation as good or great programmers, but anything too hard to do is left for some other shmuck. To those of us who are tasked with expanding, maintaining, correcting or even rebuilding applications, we find that the lack of intelligible documentation just makes the entire process that much harder. It does then behoove us to provide said information.<p>I have extended family members still in their teens who are recognised as brilliant programmers, yet they fail to appreciate that knowing programming languages, frameworks, tools and toolsets is only the beginning of the process to becoming a good and maybe in the future a brilliant programmer. My job as an old programmer is to expand their multi-disciplinary education is as many ways as possible, so that they become much better than me.<p>Programming is hard and it is not what a lot of programmers believe it to be. It is much much more.
herbstalmost 8 years ago
Most points seem pretty obvious honestly. Hard to tell if this isn&#x27;t just low afford clickbait (sorry if it isn&#x27;t)
评论 #14714189 未加载
drxzclalmost 8 years ago
Can we stop with this &quot;programming is hard&quot; business? In a CS program, the programming classes are going to be the easiest ones you&#x27;ll do. The hard stuff is the math, theoretical computer science and algorithms.
评论 #14714352 未加载
lucb1ealmost 8 years ago
Okay I&#x27;m being serious here. I&#x27;ll comment on the main points because I feel like they&#x27;re pretty much all wrong.<p>&quot;Learning programming is hard&quot; I just kinda rolled into it as I grew up.<p>&quot;Self-directed learning is hard&quot; It&#x27;s automatic for me. I&#x27;m interested in things.<p>&quot;Attending one workshop or a couple won’t turn you into a professional developer.&quot; Well yeah. Does anyone think a couple workshops turn you into a professional blacksmith?<p>&quot;It takes time: You won’t become an developer in 3 months.&quot; Fair enough, though I think if you study full-time, have fun doing it, and have a friend helping you a few evenings a week, you can probably be good enough for a junior position by 3 months.<p>&quot;Finding your first developer job is hard.&quot; Is it? Haven&#x27;t heard that from people.<p>&quot;Finding any kind of first job in tech is hard.&quot; Yeah this definitely isn&#x27;t.<p>&quot;Tech interviews are terrifying.&quot; Not really. I&#x27;m generally nervous for interviews, but not more than is healthy I think.<p>&quot;Job search in tech is extra long and frustrating.&quot; What planet are they on? I hear bad stories about people that did psychology as a study, but tech?!<p>&quot;Some people won’t make it.&quot; Fair enough.<p>I&#x27;ve stopped reading there because I just can&#x27;t see what the author is getting at. Is this just me? Or is it perhaps applicable to Silicon Valley specifically, where developers are abundant (are they?)?
评论 #14714351 未加载
评论 #14714359 未加载
评论 #14714354 未加载
评论 #14715393 未加载
评论 #14714710 未加载