7 ms·
Ask HN: Why did you stop learning to code?
I know lots of people who are interested in learning to code, but many lose interest very quickly after starting. If you can relate to this: why did you stop?
- pawan-sns 10y agoThough I'm able to manage coding but I guess people don't know why they are coding, how come it'll help the world
- dragonsky67 10y agoI think you may be on to something here. I have always wanted to be a programmer, but for a long time may attempts to learn a number of different programming languages came to nothing. This all changed when my wife finally got sick of me bemoaning my failure and persuaded me to take on a part time computer science degree. Ok, there were a couple of other reasons to do it, but in essence I was scratching an itch. The courses I studied during the degree not only gave me a direction for my learning, in that I had to produce the required program to meet the requirements of an assignment, but I also learned that there is a lot more to learning to program (or code if you insist) than just learning the semantics of the chosen language. I think there are a few things that those who want to learn how to code (ok you win) need to keep in mind. - Programming big things is really hard. You are not going to be able to build anything more than a fairly simple application without a lot of work and experience. - You really need a purpose for learning. Without this, you will have followed the bouncing ball on a bunch of exercises and still not have any idea why you have done it. - You need to make mistakes. Without making mistakes you will again just have followed the bouncing ball on a bunch of exercises. It is when you have to find what you did wrong that you start to learn. This is not a typing exercise, you need to understand what you are putting on the screen and the only way to do that is to make mistakes and fix them. - You need to be willing to hack things around. Don't just do the exercises, they are just typing practice. Take the code you have written in the exercise and do something different with it. If you are playing with graphic routines, see if you can make it into a simple game, or make it draw something different. If you are playing with text, see how many ways you can put the a set of words together that make sense. Play with your code, this is meant to be fun. Remember how you used to feel when you were playing with Lego when you were a kid and see if you can capture that same feeling. Ok, Lego was a lot more forgiving in how you put it together, but you will learn a lot more once you start playing with programming, than you will ever learn from following exercises. The parent comments that they have to learn a bunch of libraries to do anything useful. Start with something simpler, you don't need to do a full GUI application in the first week. See if you can make something that works just from the command line. There is a lot of very useful programs that work just by digesting a text file and producing some output. Yes you will eventually have to learn a number of libraries, but remember you have to walk first.
- 1npo 10y agoFor me, I feel as though you need to have a vast amount of knowledge in order to code anything useful or significant. You can't just learn a language -- you need to learn a library, or two, or ten in order to finish a project. I often find myself overwhelmed by the amount of information I need to take in and process in order to complete a small task. I've found myself looking to smaller and simpler languages and operating systems in order to get around this, but it doesn't seem to help. Whether it's Python on Linux or C in Plan9, it's the same problem for me. This is probably a bad example, since it could be implemented in a simpler way on a different system, but it illustrates my point. I wanted to write a small instant messenger in Plan9. The most efficient way to do it is to use 9p, have the clients mount a name space, and just read/write to a file. I have to learn how to use 9p, which has a ton of data structures and functions, most of which require other knowledge about the system. I have to learn the draw library, which is also full of the same sort of things. More often than not, trying to learn how to use a library demands further research in to other things in order to understand what's happening. All in all I feel like I'm being overloaded. The amount of learning I have to do greatly outweighs my desire to persist until I can produce anything valuable.
- WWLink 10y agoThe effective way to learn those things (especially with the larger library languages) involves copious use of search engines and ctrl-f in books/manuals, lol. Some things you'll repeat enough that you know it by heart. Other things might be really basic, but you'll still have to google it from time to time. What does come nicely with time is you start to build up a mental model of "hrmm, I want to do this, but I need an XYZ. I know in ObjC I used XYZ, does Scala have that? Oh neat it has something similar!"
- RUG3Y 10y agoThis is the only way I've learned anything...repeating a few things until I can't forget them. I'm by no means a brilliant programmer, but you can do a surprising amount of things using a few simple concepts.
- kup0 10y ago
- tomlock 10y agoI now code. In school, I tried to learn to code several times. But I always stopped, I think because I didn't have any desire to build things that didn't make a "product". I learnt to code when I had something to make that would make my life easier.
- dhruvkar 10y agoExactly this. Tried learning to code many times over the last 10 years. I stuck with it only when I had a scoped personal project that happened to fit my skill-set, while stretching up to (but not hitting) the point of being overwhelmed.
- acidburnNSA 10y agoI think I got lucky in 7th grade when my friend thought it'd be funny to phish his cousin who I had a huge crush on. I had to learn some perl to do it. We pulled it off and now I code all day for work and many nights for pleasure. Romantically it did not go so well.
- SFJulie 10y agoAt first I had a C64 and basic and only the manual. I could not do much with just a listing of command and their use. You had to guess how to construct a program from commands, as if you try to learn a language by using a dictionnary. Not very efficient. But, I did repeated the begin and stop experience with «learning the language from a dictionary» with a casio calculator (422bytes code) and a HP48SX. I dare say that I went way further with the HP, it was an awesome start at learning programming, because it had all these data structures that where close to being functional without the burden of being functional crap. My first try at ASM was in the 1980's a «geek» told me it's easy : he gave a floppy with an assembler and said to deal with it, that's all you need. Second time 5 years later a coder gave me a floppy with pascal and nothing more. And I was demotivated. Then, I went to university, I had to achieve results in programming with less than useful training (just C with the difference between pointers and integers), and it went better. It was code or you'll not be able to graduate so f*cking find a way fast. Finally, in my master degree in physics I had an obscure option for interface programming that was in fact 68000 asm programming. And I had a COMPETENT teacher that explained us HOW computer worked, and HOW the code was working. It unlocked so many keys in my brain I understood stuff ranging from OS, to C, to ASM to even matlab mechanism. Learning like in sport is made of steps and stagnation. And people often think it is a bad thing. I think it is human brain normal behaviour, like strats of learning putting each others on top of one an another. I also would like to spot in the era of «online is all you need to self learn anything» that it is bullshit crap: knowledge does not jump from internet to your brain. A good «craftman» teaching you his craft with the intuition that comes with is like a catalyser. Long story short my 15 first years of learning are made of 4 distinct steps of «stopping to learning code» and I think they were necessary, like both a trial of faith and a necessary evil.
- riprowan 10y agoI learned to code in the early 1980s and studied it in university in the late 1980s and early 90s. Since then I've ingested and forgotten countless languages and technologies. At a certain point I realized that I had spent more than 1/2 of my life trying to instruct machines, and it struck me that this was a giant waste of the rest of my short life. Now I try as much as possible to be AFK and I'm very pleased with the results.
- seekingcharlie 10y agoWhile I know HTML/CSS very well, I have unsuccessfully learned how to code after many attempts. I agree with another poster here - it felt like there was too much to learn just to be able to get started. I've tried to learn Rails for example, following Michael Hartls' step by step tutorial, and even then I get stuck. Suddenly I'm lost with homebrew, updating my PATH, rvm, gemsets, versions, etc. To build a simple website, I have to learn about nodejs, bower, grunt, API's, databases. Also, there is just something fundamental about the high-level of programming that I feel is never explained in introduction tutorials. When I've tried to learn Ruby itself, most tutorials start out with the syntax (integers, loops, etc), whereas I'd prefer some explanation around how the code is processed to the result. I know some basic Jquery and I am still confused at how it actually works - how the "instructions" end up at the result in the browser. I've tried the online courses but I struggle to learn through videos and I just find that these courses never really get you to where you can actually build something. I may just need a mentor or classroom environment. With all of this said, I've just started a 4 month sabbatical and learning to code is my top priority, so I'll see how it goes...
- LifeQuestioner 10y ago...maybe start with an easier language set and then transfer the skills....even as a 10 year developer I found ruby weird/challenging to pick up and all the new web development languages/paradigms. It's taken me a good month! I couldnt really imagine starting out with ruby tbh. If you learn java in depth - php will be easy, java script will make more sense. Having learnt one language in depth, picking up most other languages are easier, you'll be in a better position to understand how jquery works.
- rimantas 10y agoOmg, not java for sure. The important bits will be burried in the boilerplate code. How about starting with NO language at all. Learn what variables are, what assignment is, how do control structures work. And hey, you've just learned to programm. At least I learned this way. We had no access to computers so the lessons were more or less what I listed above. On paper. And when I did get access to the computer I already knew how to program. The only thing I needed was to find out which MSX-BASIC instructions are for the things I want. I. e. I had just to learn a syntax, not the concepts. Having mastered concepts is also very transferable, especially between the languages of the same family.
- drops 10y agoI didn't stop learning to code per se, but I did drop it 3 or 4 times over the course of a few years because the results were far too abstract to appreciate, or to even understand why do I code at all. Maybe I'm too much of a visual person, but unless I see why does a certain peace of code exists - or should exist - I can't really begin to analyze and perceive it properly. I still can't grasp the backend of the websites, for example. On the other hand, I easily grasped how CSS works as well as video game code in GameMaker because you can actually see and experience what you make.
- mattbgates 10y agoTLDR; Follow your dreams, follow your passions, and never give up. Keep having ideas and making them a reality! The moment you give up is the moment your projects will fail. Each day, you have a chance to seize your opportunity. Longer story made shorter: I never stopped learning though I stopped learning code for a long time. In fact, I had taught myself programming at 12 years old. I had tried and tried and I just didn't get it. It was Visual Basic 3.0. I kept opening it up and trying new things, but always was unsuccessful. One night, I had a dream about programming and designing applications. I woke up and wrote my first program. It was just an eight ball that chose a random response when a question was asked, but it certainly led me to write other programs throughout my teenage years, mostly to interact with America Online. At 18, I lost interest completely in programming and stopped. Almost a decade later... from going to college to living in another country, I came home, broke, with a college degree in psychology that wasn't getting me anywhere, and I searched Craigslist, applying across the board to every single listing that seemed suitable. I applied even in areas that I knew I had no chance, or thought I had no chance, and one of those areas was a programming job. I never thought I'd get a response, but this software company called me and tested me on my knowledge. While I didn't get 100%, I got a pretty good score and they hired me on spot. The job required knowledge of Visual Basic 6.0. Never thought that would ever come in handy, but it did. After a few months of training, I was back in the game. Long story short... I worked for a tyrant boss that paid me far less than what a programmer should have been making, and I ended up looking for other jobs. Instead of searching for another programming job, I began my path into web design and development. I honestly thank that boss for teaching me everything I know. I suffered a lot with him because he was so arrogant and loved to talk down to me, but if there was any great lesson I learned from him that I still use today, it is that before you can code, you must understand what you are coding. That means: WRITE OUT EVERYTHING BEFORE YOU DO IT. EVERY PROCESS, EVERY OPERATION, AND THE GOAL OF EVERY PROCESS. If you lose the vision of your program, than you have no program. Keep the focus and you will always be successful in whatever code you write. I had already begun building websites, either for free or cheap so I decided to apply for other jobs about a year and a half after getting that first programming job.. I saw two jobs at the same time on Craigslist, and I ended up going for an interview for both.. the latter one didn't hire me right away, but eventually called me back, stating that they interviewed over a dozen people and I was the only one qualified enough for major consideration, so I ended up getting them both. Both were web design jobs, but one required 8 AM to 5 PM while the other required 6 PM to 2 AM. I was also freelancing on the side and had several paying clients. So I was pretty much working until I passed out. I slept very little and never took a day off. Having student loan debt, I ended up paying off my $40k debt in under 3 years. But the experience I got in those 2-3 years was equivalent to give me 5+ years experience as a web designer and developer. One of the companies that hired me specialized in designing weather modules that displayed energy data on kiosks for solar panels in corporate buildings. The other one was a media company and paid me to design custom news web pages for big corporations like Goldman Sachs, Walmart, Kelly Blue Book, Avon, TripAdvisor, and many well-known pharmaceutical companies. After over a year and a half of working non-stop, the solar energy web design company laid me off. I was upset and it took me a few weeks to get used to the fact that I no longer would be working at this job. Lucky for me, they had offered me a severance package: 3 weeks paid vacation on the condition that I would not file for unemployment. Little did they know, I had the second job, so I couldn't file for unemployment. So I ended up getting paid for 3 weeks on top of getting paid for my other job. That company ended up laying off everyone 6-9 months later and couldn't even afford to pay their employees, my former co-workers anymore, so they all had to sue to get their paychecks. It was a blessing in disguise to be the first to get laid off. Anyways, I still worked for the night company from 6 PM to 2 AM and had my freelancing business. They would eventually give me a choice: move across the country or get laid off. I ended up moving and currently still work for them. As far as what I do now: I picked up some big clients as a freelancer in the area who are making good money, so they pay me well to maintain their websites. I also run a few of my own websites that managed to get popular, so ad revenue kicked in and at least helps pay for the server and a few equipment items, such as my laptops when they break. My most popular website is http://www.confessionsoftheprofessions.com http://www.confessionsoftheprofessions.com which primarily focuses on what people do for work; mainly understanding jobs, careers, and the workplace. This attracts people from all walks of life and helps me network with hundreds of people and companies every year and I get to learn a lot of new information before it is ever released, as the website is sometimes a company's primary source of information distribution. I also learned PHP and MySQL databases so aside from my day job, at night, I build web apps. Although I'm just getting into it, I'm hoping that it will bring in some recurring revenue. I cannot reveal all the details of these web apps at this time, but lets just say: I look around the Internet and if I see something can be improved or offered at a better price, I build it and become the competition. One of these web apps is https://mypost.io/ https://mypost.io/ which allows you to create beautiful simple web pages in minutes with just a few clicks. No registration, no account, no hassle. In addition to this, Google Analytics is not installed to try and help users remain completely anonymous. This has led to an increase of visitors particularly in Russia and China with the United States just behind. I am always in non-stop learning mode and certainly would love to find the time to learn Ruby. For my job, aside from building custom news webpages, I also try to predict and develop new web templates for what the Internet will look like in the years to come, particularly how people might read their news. I love my job.. but if you asked me a decade ago if I would be where I am today, I would have probably believed it was never possible. I will just finish with this: code is poetry and it is all about understanding what people want in today's fast-paced ever-changing tech world. Sure, you have Facebook, Twitter, Google, and other large networks and you might think to yourself: What can I possibly make that hasn't already been made? The advantage we coders have over the big companies is that we can specialize in the small things and give the user a much more personal experience than the big guys can. It is something they have lost over the years and that becomes our advantage of developing new web apps. Never stop learning and find your audience or your customers. As a software engineer, coder, programmer, web designer, web developer, and all the other names we have... there is no excuse to be unemployed, out of work, or bored. You have work to do. Get started.
- youngButEager 10y agoMoney. Money as motivator. Was building hardware devices for musical pursuits (guitar effects) and my 1st degree was in EE. You can graduate with an EE degree, having taken a course or two or three in basic programming but it falls out of use and the depth was never really there anyway, more of a "here's programming" intro. When I tried to change jobs as a 'hardware guy' I had limited options, unlike my software engineer friends who had a gazillion options it seemed. Makes sense, hardware is built once, but a piece of hardware can have an infinite number of programs written for it; thus one hardware engineer and an infinite number of software engineers for one piece of hardware. They (my software engineer chums) also made A LOT MORE MONEY than me. Went back to school, focused solely on software. Best decision I ever made. Money as a motivator to learn to code is questionable but I got lucky as I learned to love it after becoming engrossed in it. EDIT: Point being -- if you have a big enough "Why" you simply will learn to code. If you can't make money or have an enjoyable hobby doing coding, your motivation will be to do something else more enjoyable. Everyone saying "I couldn't figure it out so I quit" -- BALONEY. You can figure anything out, really.
- CM30 10y agoIn the past, I stopped coding a fair few times simply because I didn't see any benefit to it. Everything I wanted to do on my sites already had an off the shelf solution that simply worked a lot better than any home made equivalent likely would have. So I just stopped and used the already made one (for things like a CMS, blogs, wikis, forums, etc). And it's also kind of why I stopped again and again. Because I just can't find coding fun in itself, there's always got to be an 'incentive' or 'use' for what I'm learning. Every time I'd consider doing something interesting, I'd end up thinking 'what exactly am I going to use this for?' then stop again. Maybe I'm just not imaginative enough.
- HcommaZK 10y agoTo be honest: I didn't know what to code. I took a few 100/200 level CS classes and always was engrossed and did well, and I even code at work (mostly VBA, some simple MATLAB, and a proprietary language). I started learning Android development but never finished it because I had no idea that I really wanted to implement, no graded assignment to complete, and no monetary incentive. I guess the analogue would be that I've been paid to make tomato sauce and I've been graded on stretching dough, but I don't have a pizza in my head that I want to bake.
- appleiigs 10y agoIt's unfortunate that a common first project idea is "hey, I should build a website", which is HTML and CCS - and isn't programming at all. Then when they go beyond that they'll hit the crazy fragmentation of web development.
- Nadya 10y ago+1,000 if I could. Honestly, this is my biggest issue with getting better at programming. I don't want to reinvent the wheel - and everything I want to exist already does exist and has an awesome implementation. "I want to be able to categorize my music as if it were my job." --> http://beets.io/ http://beets.io/ ---> "Oh, this exists and does everything I could possibly need." I want beets for arbitrary media (eg: tv shows, photos) but my current solution covers my needs - I'd just be switching over from grepping text files for queries to querying a database to obtain the same info...
- RUG3Y 10y agoI stopped learning because I am a Product Owner now. My job doesn't let me write code often, and I have some big projects that have sucked up my "side-project" time. At home, I've been focused on writing articles, and building an e-commerce site that is using Wordpress, so no coding there either. Eventually I may get back to it.
- mrits 10y agoI'd never put a person in position as product owner that doesn't understand how to develop software. You can certainly be successful without knowing how to code but in my experience that is almost never the case.
- RUG3Y 10y agoI agree with you. I think POs without technical ability have problems communicating with developers and understanding what's possible/feasible etc.
- djdelusional 10y agoThis is something I relate to, as I first started getting into coding while I was in elementary school. I started with Microsoft Visual Studio, and wrote my first bits of code in Visual Basic. In high school implemented a DMX lighting controller driver and built a simplistic binary search in order to determine which address a given light dimmer was on in the local performance hall. I built my first webpage in 6 or 7th grade, but the most amazing thing is I gave up many of these early interests mostly because I wanted to "Fit in" in highschool. I took on an interest in film and photography, and even did 2 years of college majoring in documentary film. In my spare time I occasionally tinkered with Arduino and Raspberry Pi's, trying out python and other things, but never really got very far. The biggest change happened when I landed a job for a production company, and 5 or 6 months in their lead developer decided to leave. Remarkably, I was incredibly unsatisfied with where I was in the company. I found that creating advertising videos for people who didn't want to shell out the cash to do it right was incredibly destructive to me and my creative drive. I saw an opportunity to learn, and set out to try to learn to build smart phone apps, as well as web-apps. Im 2 weeks away from transitioning to a new job as a full-stack software engineer. The road is long and hard, but I will say that living and breathing code for 2 years as a full time job really helps you learn a lot really fast. It was far more beneficial than taking a Computer Science program in college. I realize this isn't really why I stopped but kinda how I became what I am today. Yes it's incredibly confusing. Learning HTML, CSS, and Javascript, then to find Node, Gulp/Grunt, Sass/SCSS, and Angular. Then to have React come out, and learning all these libraries that are changing constantly, I totally understand how getting into the web can be hard. The truth is many people don't see the joy or power in it, and it seems too hard to even try. The key is to have a reason to learn. To force you to learn. Sorry for that long-winded response. :-)
- BenWS 10y agoI'm new to programming, and am attempting to work my way into a software development career. While I'm continuing to produce a fair amount of code for my portfolio, I sympathize with those who are saying the amount to learn is overwhelming. This by itself is enough a challenge, but there's also the question of whether coding will be a thing in twenty years - given the recent advances in AI and the question of whether jobs in general will be a thing after AI become sufficiently advanced. I enjoy coding for the creative aspects and the pride I feel when completing a difficult task - but lately my technophobia has been winning over my affinity for the creativity involved in the task. There's also the feeling I get that with the accelerating technology curve, software development is becoming even more of a 'shapeless' profession as the years go by - it's difficult to find a sense of identity when the technologies I'm learning could be obsolete in a couple of years. Trying to find a way around these thoughts, because they've really become a barrier to myself really enjoying the learning process - but I think they're worth consideration.
- beekums 10y agoI started a CS degree in 2002. Back then there was a worry about programming jobs being around due to out sourcing. Fast forward a few years and it turned out that worry proved to be unnecessary. It turned out that communication was a critical part of software development and that is hard to do with time zone differences. I think AI will also end up not being a huge concern, even in 20 years. Once you learn more about programming, you'll learn how truly far off we are. One AI researcher pointed out that worrying about something like that is like worrying about overcrowding on Mars when we haven't even sent a person there yet. In the mean time, there is actually a lot of really boring, grinding, work in a programming job. Better AI will take that over more and more which leaves more time for programmers to work on more interesting things!
- personlurking 10y agoI've had 3-4 failed starts and (thus far) left it at that. They were all with Obj-C/Swift, and my recurring problem was a) the amount one has to learn to make something up to par and b) the disconnect between the text editor and the product taking shape. I'm a writer, to use an example. When I want to start a new article, I come up with the idea, plot it out, do the research and start writing. All points along that line are easy for me. From the start, I'm well aware of the direction it's taking (and thus what the finished product will look like) and within half a day I can already see it taking shape on paper. In my life I've learned foreign langauges but I can't seem to think of computer languages as something similar. It just looks like gibberish, even though I've succeeded in making two simple websites and a two simple apps in my dabbling phase. TL;DR: it's half a learning curve issue and half a disconnect.
- marmot777 10y agoI think checking out Python might renew your enthusiasm. It's pretty damn cool.