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?
44 comments
While 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...
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...
I can relate to your sentiment. But note that your problems have very little to do with learning how to program, and everything to do with needing to navigate the high buy-in tax of learning all of this tooling before first building a simple site.
I HIGHLY, HIGHLY, HIGHLY recommend you give Steve Huffman's course on "Introduction to Web Development" at Udacity at shot. Unlike virtually every single resource I have found, Steve does a great job of explaining the basics of the infrastructure of how a website works while you are implementing it at the same time. Also, since he does it on Google App Engine, 100% of the "tooling" you will need will simply be installing the app engine runtime. I've found that it is a fantastic introduction to programming for the web. It will give you a solid understanding of the basic infrastructure, and you will then have a good mental model onto which you can slowly graft the many other tools that developers use when making a site.
I felt exactly like you did - and in my case, I had even programmed some in college but found it hopeless when trying to make a "real" product. Today I weave between backend and frontend technologies, preprocessors for my styling, grunt, etc. -- all of the stuff that I was put off by at first. And I'm confident it wouldn't have happened if I hadn't taken that course first.
I HIGHLY, HIGHLY, HIGHLY recommend you give Steve Huffman's course on "Introduction to Web Development" at Udacity at shot. Unlike virtually every single resource I have found, Steve does a great job of explaining the basics of the infrastructure of how a website works while you are implementing it at the same time. Also, since he does it on Google App Engine, 100% of the "tooling" you will need will simply be installing the app engine runtime. I've found that it is a fantastic introduction to programming for the web. It will give you a solid understanding of the basic infrastructure, and you will then have a good mental model onto which you can slowly graft the many other tools that developers use when making a site.
I felt exactly like you did - and in my case, I had even programmed some in college but found it hopeless when trying to make a "real" product. Today I weave between backend and frontend technologies, preprocessors for my styling, grunt, etc. -- all of the stuff that I was put off by at first. And I'm confident it wouldn't have happened if I hadn't taken that course first.
We built www.lite-engine.com partly to fill this need; learn web development without admining servers or dealing with the backend language slash framework holy wars. With our paas you create web apps with html, css, JavaScript and sql. Great for learning these technologies an rapid app prototyping.
If you prefer to approach it from a full understanding of the fundamentals, like how jQuery instructions get translated to result in the browser, it's going to take a very long time. People go to university for four years and many don't understand fully.
On the other hand, if you can ignore your tendency to understand things and limit your scope to shallow understanding of the top 1 or 2 tiers of the stack, then you can learn enough to be useful within a short amount of time.
On the other hand, if you can ignore your tendency to understand things and limit your scope to shallow understanding of the top 1 or 2 tiers of the stack, then you can learn enough to be useful within a short amount of time.
I'm wondering if Skype mentoring might help you. If you're serious about this, shoot me a message.
I think that by far the single most important thing is to start the "learning to code" process with a specific project in mind.
I think that by far the single most important thing is to start the "learning to code" process with a specific project in mind.
That sounds like you're using a tutorial aimed at developers from other languages. You can get started with much less and you may want to look around a bit more for things that ramp you up more gently, eg starting with serving static content to dynamic content from parameters to databases to the various bits of front-end tech.
At some point in software you will realize that there is more going on than you will ever know in detail and the best you can do is understand the salient points and some things are simply not worth learning.
At some point in software you will realize that there is more going on than you will ever know in detail and the best you can do is understand the salient points and some things are simply not worth learning.
...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.
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.
Omg, 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.
>Omg, not java for sure. The important bits will be burried in the boilerplate code.
So what? It doesn't make any difference for a beginner, I'd say it actually helps beginners since it makes programming a easier to approach.
>How about starting with NO language at all.
I hated this kind of advice when I was new, I followed it and my hatred has not subsided at all. Just pick a language and learn this stuff as you go, it will make zero difference and will save you a ton of time.
So what? It doesn't make any difference for a beginner, I'd say it actually helps beginners since it makes programming a easier to approach.
>How about starting with NO language at all.
I hated this kind of advice when I was new, I followed it and my hatred has not subsided at all. Just pick a language and learn this stuff as you go, it will make zero difference and will save you a ton of time.
I think it's the individual differences between deductive and inductive learning styles at play here. Inductive learners, like myself, prefer to see examples and derive general rules. Deductive learning style is more about learning the generality first and moving on to examples.
Different strokes for different folks.
I too learned like you, I first learned Perl by trial and error example and the wonderfully awesome Learning Perl. I learned Java by frustratingly going through it, but once I got it I got it. Learning object oriented Perl and Python feel trivial now, thanks to that experience. Python, btw, feels like it needs to be practiced instead of learned, since I already have the concepts and generalities down.
The question of this thread is, how do we teach beginners the concepts in an interesting way. I realize how much of a genius Larry Wall and Randal Schwartz are when I see threads like this.
Different strokes for different folks.
I too learned like you, I first learned Perl by trial and error example and the wonderfully awesome Learning Perl. I learned Java by frustratingly going through it, but once I got it I got it. Learning object oriented Perl and Python feel trivial now, thanks to that experience. Python, btw, feels like it needs to be practiced instead of learned, since I already have the concepts and generalities down.
The question of this thread is, how do we teach beginners the concepts in an interesting way. I realize how much of a genius Larry Wall and Randal Schwartz are when I see threads like this.
You can learn all those things you've just said, in Java, very little boiler plate.
Java to me, is a mixture of all languages, or most languages have at least elements of java in them. Hence useful to start with, picking up others are easy.
I think the limiting factor for most people is motivation, not intelligence.
Reading books and doing tutorials will certainly help you, but you might get burned out quickly. Working on projects seems like a much better use of your time.
Eventually, you'll have to pick up some books and learn theory, but the main challenge is getting to that point where you'll find the theory useful.
Reading books and doing tutorials will certainly help you, but you might get burned out quickly. Working on projects seems like a much better use of your time.
Eventually, you'll have to pick up some books and learn theory, but the main challenge is getting to that point where you'll find the theory useful.
> I think the limiting factor for most people is motivation, not intelligence
I think the limiting factor especially if one is learning on his or her own, is grit and persistence.
I think the limiting factor especially if one is learning on his or her own, is grit and persistence.
I started at zero and Hartl's tutorial was my first try. I got stuck too. Ruby &/or Rails has too much magic and doesn't teach you how things work. I switched to Python and Django. Python has tons of beginner learning material. Django was easy to pick up after going through Hartl's Rails Tutorial. Best Django material for me was "Tango with Django".
That is interesting because I did it the opposite way. I started with python and switched to ruby. Ruby IMO has more introductory material than python and I was terrified of the idea of reconciling python 2 and 3 which many books I found alluded to.
To be sure, part of the problem with learning to program by ones self is that a lot of background material is lacking and the toolbox is incomplete. For instance, what is an API and how does one learn about it? What are threads? What does runtime really mean? Command line invocations and PATH?
ASCII? and so on for all the entities one will require.
Learning programming and how IT works overall is like assembling a huge puzzle. At first you will struggle, but every now and then you're gonna fit in a new piece and eventually you will start seeing the big picture.
it sounds like php might be better for you to learn on. You can put small snippets of it directly into html and have it be immediately useful without learning a bunch of other stuff.
While it was nothing to do with websites, check out "Programming from the Ground Up". I think the title explains it all :-) It starts with assembly and ends with C.
For 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.
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.
The 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!"
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!"
This 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.
Having to learn libraries has definitely been the roadblock for me. I understand the "basics" that most of the tutorials and things I've used so far tend to cover (loops, data structures, etc.) but that always seems to be as far as I get before it feels overwhelming to try to learn libraries.
So many tutorials and learning materials/examples use libraries, but they often never really cover how to learn these thoroughly or provide any methodology for doing so. It's always just thrown in so they can show you a code example.
Maybe reading library documentation is the only way, but I feel like from a learning perspective if someone could crack the library-learning process and make it easier or more welcoming that it wouldn't feel like such a brick wall.
I'm not sure if the problem is the learning materials or me, to be honest. I really should just dig into a standard (or other) library and try to learn it back-to-front I suppose and see if that tough process (that I always seem to quit...) pays off.
So many tutorials and learning materials/examples use libraries, but they often never really cover how to learn these thoroughly or provide any methodology for doing so. It's always just thrown in so they can show you a code example.
Maybe reading library documentation is the only way, but I feel like from a learning perspective if someone could crack the library-learning process and make it easier or more welcoming that it wouldn't feel like such a brick wall.
I'm not sure if the problem is the learning materials or me, to be honest. I really should just dig into a standard (or other) library and try to learn it back-to-front I suppose and see if that tough process (that I always seem to quit...) pays off.
To 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.
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.
+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/ ---> "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...
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/ ---> "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...
It'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.
Money. 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.
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.
I 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.
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.
I 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.
Exactly 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.
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.
I 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.
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.
I'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.
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.
I 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!
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!
I'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.
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.
I 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.
Eventually I may get back to it.
I'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.
I agree with you. I think POs without technical ability have problems communicating with developers and understanding what's possible/feasible etc.
This 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. :-)
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. :-)
In 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.
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.
At 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.
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.
I 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.
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.
Though I'm able to manage coding but I guess people don't know why they are coding, how come it'll help the world
I 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.
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.
I think checking out Python might renew your enthusiasm. It's pretty damn cool.
TLDR; 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 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/ 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.
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 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/ 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.