Live data from Hacker News

Ask HN: Non-technical people, how did you learn to code?

news.ycombinator.com

31–40 of 58 posts

Re: Ask HN: Non-technical people, how did you learn to code?

#31
In I believe 1975 I moved across the campus from 8 years of fines arts study to the nascent computer department (actually math department---wouldn't become computer department until long after I left) sat down in front of a model 29 keypunch machine took a summer course in a pseudo language modeled on IBM 360 assembler. It was made up of macros and was enough to show the basics of programming if not language. Shortly after that I was handed my professors old copy of Susan Stern's book on IBM BAL. For those who have never had the pleasure, it is (was?) very near a high level language even if it had a low level implementation. My first observation was that there was very little difference (meta) from planning a piece of sculpture to planning a program. As I joked, the biggest difference was clean-up; with code, you just turn things off, with sculpture you spend a fair amount of time with physical work. My first significant project was building a concordance generator---a key words in context generator from a given corpus. This meant not only the usual trapping of text in, new text out with no library to aid, but taking quick-sort apart and writing it in assembler. Looking back it was one of the harder things I've ever done; but that said, also one of the most enjoyable. There after I began the usual progression, skipped PL1, took FORTRAN etc. I was introduced to C at the New Jersey Computer Faire by Scott Guthrie who was selling a version of Small C, enough to get a leg up. Then BDS C on my 8085. Looking back, I've loon since adopted an approach of 'What have I lost, what have I gained' with regards to the language and syntax. Programming itself remains the same, although some things are easier to express in some languages versus others (Noam Chomsky and 'Language conditions thought' seems to apply to computer languages in my opinion.) Over the years, it is the usual 'Wash, rinse, repeat' with regard to language with the selection dependent on what the client wants or provides.

Re: Ask HN: Non-technical people, how did you learn to code?

#32

A hugely important thing to keep in mind when learning is "humility is endless". I remember when I started out I felt like I knew hopelessly nothing. Well it turns out that this is actually a good thing. You learn much better when you approach everything with the attitude of "I don't know this so I am open to everything" (There's a concept of 'Beginners Mind' in Zen Buddhism which is similar). I find that new program…

Is there a reason why you recommend 1-3 hours and not let's say 6-8 hours (split wisely)?

It really depends on the person. I find I'm not able to absorb more than 1-3 hours of new stuff each day. It's also a lot easier for me to commit 1-3 hours every day. There's an idea that you need to learn a lot up front, and then you're a "programmer". Doing 1-3 hours of learning a day, gets you in the habit of ALWAYS learning. You never know enough, so it's not a 3-4 month process where you come out at the other end and you're done. I think 1-3 hours a day is manageable by everyone, and you don't ever run into diminishing returns for the day.

That doesn't apply to actually programming. If you're building something, and you have the time, more hours in the day is generally better. If the focus is on learning, 1-3 hours is probably good for most people, and something that's easy to keep up with for years.

Re: Ask HN: Non-technical people, how did you learn to code?

#33
Make it sink or swim. Force yourself to learn or perish...you'll learn.

To echo what others have said, having a problem you need to solve is paramount to succeeding. If you're just reading a programming book, being introduced to totally foreign concepts that you never put into practice, you won't get anywhere.

Based on your background (looks like design and electrical engineering), I think you'll do fine.

Some of my first projects were: - A directory (basically just listings on a map) - A customer survey - A todo manager - A wordpress plugin

All simple projects, but all things I was able to use. When you first start, sometimes you have to reinvent the wheel a bit just to get some practice (it's not like any of the aforementioned haven't been done a thousand times). What you're looking to develop are fundamental skills:

- How to design a relational database - How to design a non-relational database - How to query said database - How to work with strings (splitting, imploding, etc.) - How to work with arrays and loops - How to work with objects etc. etc. etc.

As you keep adding new tools to your arsenal, you'll wake up one day and be really surprised with what you know.

...And as a few others also said - stay humble. You can be proud of the things you create - but just look around every once in a while and find someone better than you. You won't have to look very hard.

Re: Ask HN: Non-technical people, how did you learn to code?

#34
I wrote this http://learnpythonthehardway.org/book/ and http://ruby.learncodethehardway.org/ and am now working on this http://c.learncodethehardway.org/ so I'll give you advice that fits with what I've been doing to teach people:

1. Do every exercise, type in every bit of code, DO NOT COPY-PASTE.

2. Make the code run, fix all the bugs.

3. Repeat until you are done. Do it 1-3 hours a night.

That's it. It's an old method: repetition and practice to build base fundamentals so you can apply them to more complex problems. For the very beginner this works better because the topics are incredibly simple, but their experience and understanding needs work. By making them just type it in, then explain it, I get them experienced and bust through a lot of fears about learning something new.

Hope that helps.

Re: Ask HN: Non-technical people, how did you learn to code?

#35
post #34

I wrote this http://learnpythonthehardway.org/book/ and http://ruby.learncodethehardway.org/ and am now working on this http://c.learncodethehardway.org/ so I'll give you advice that fits with what I've been doing to teach people: 1. Do every exercise, type in every bit of code, DO NOT COPY-PASTE. 2. Make the code run, fix all the bugs. 3. Repeat until you are done. Do it 1-3 hours a night. That's it. It's an old met…

Awesome! I didn't know that you were doing the same for Ruby, thanks.

Re: Ask HN: Non-technical people, how did you learn to code?

#36
Crap, my looooong answer disappeared in a timeout.

The short version: in 1999 I was a junior Graphic Designer and was given the task to build our first website. At the time i thought programming was too abstract. The site was done entirely WYSIWYG in Dreamweaver and total crap but it was online. After a while we saw some cool effect somewhere on the net and I had to implement it on our site. It wasn't that hard, actually, and it soon appeared to me that my way of using graphic design/dtp programs (I knew most keyboard shortcuts by heart, used almost exclusively the keyboard and numerical values to manipulate objects, didn't use rulers…) was actually quite abstract compared to what most of my co-workers and friends did.

After that I just gave myself tougher and tougher challenges until I "pivoted" to become a full time Web Developer.

The whole transition took 8 years of reading books and tutorials, trying, failing, trying again. But maybe you are more on a hurry?

Re: Ask HN: Non-technical people, how did you learn to code?

#37
post #4

I taught myself to code at the age of 22 and I am not a math genius by any means. I feel like I'm getting pretty good at it (almost 24 now). The biggest thing to remember is to have a real problem you're trying to solve with programming. Just going through tutorials isn't going to teach you how to program. And then Google until you figure it out. I found it works best to get something functioning, and then go back an…

I most likely count as a technical person, but I couldn't resist weighing in. One key factor when I've been learning something programming-related has been to actually deal with problems that I need to solve. If you're currently puting reports together by hand, see if you can write a bit of code to do the repetitive part. If you need to filter a stream of articles, see if you can weed out the easy 80% using word matc…

Very true, though it would help a lot if the need to solve something is driven by an innate interest, curiosity or simple laziness to do repetitive work (so as to pursue more interesting things).

Monetary motivations don't really count. No doubt it helps, but it won't compel or make you strive to become a better programmer or make something truly great.

Re: Ask HN: Non-technical people, how did you learn to code?

#38

Crap, my looooong answer disappeared in a timeout. The short version: in 1999 I was a junior Graphic Designer and was given the task to build our first website. At the time i thought programming was too abstract. The site was done entirely WYSIWYG in Dreamweaver and total crap but it was online. After a while we saw some cool effect somewhere on the net and I had to implement it on our site. It wasn't that hard, actu…

Too bad the long answer got lost :( Well, not in a hurry, but if I can save a couple of years by learning and working smarter, I'd take it! I'm just testing the general assumptions to help me with my current learning (is there a better way? How can I improve? etc.)

Re: Ask HN: Non-technical people, how did you learn to code?

#39

A hugely important thing to keep in mind when learning is "humility is endless". I remember when I started out I felt like I knew hopelessly nothing. Well it turns out that this is actually a good thing. You learn much better when you approach everything with the attitude of "I don't know this so I am open to everything" (There's a concept of 'Beginners Mind' in Zen Buddhism which is similar). I find that new program…

Is there a reason why you recommend 1-3 hours and not let's say 6-8 hours (split wisely)?

Because your goal is to get to thousands of hours of practice. I think the probability of burnout is way too high if you put 6-8 hours of practice in a day. The only way to get to thousands of hours is to practice every day for a long period of time. With 6-8 hours it's very easy to say to your self "Well I did put in all the time yesterday, so today I'll take a break", and this in turn tends to lead to finding yourself spending weeks/months without practice. Slow and steady and whatnot ;)

Re: Ask HN: Non-technical people, how did you learn to code?

#40
post #9

I started programming when I was 24 (11 years ago) and working at my first job. A coworker was my mentor early on, and we pair programmed frequently for a couple of months. I read a couple of Wrox Java books and just learned by writing a lot of code and reading as much as I could. Luckily, I was tasked with developing a whole bunch of forms for a client-server application, which the IDE helped me out with a lot with…

Can you define #3? Meaning going from easy to difficult? Or starting with a difficult task and trying to solve it (at the beginning everything seems difficult, but yeah :).

I meant choosing a project that is not too difficult, but is interesting. Solve a real problem, even if it's small. One advantage you have is that instead of being a programmer, you have expertise in something else. Are their any problems in your own field that you can solve with software?
Post reply on HN