Live data from Hacker News

Want to Learn to Code? Start Small and Have Fun

fredkschott.com

1–10 of 18 posts

Re: Want to Learn to Code? Start Small and Have Fun

#3
It is sad that after 20 years of MVC and the 10 years of it on the Web, we are still telling people that to start coding they need to start with HTML, CSS and JavaScript. And I agree with you, this is the place to start today. Yet it is pathetic, that is unless we want to keep the coding just to ourselves, like the doctors do with their field. I recently listened to a presentation on Grails. Honestly wanted to grok it fast. Mind you, I have been a Java developer since it first came out around 1996. No disrespect to the framework itself, but all those extra concepts you need to shove into your head before you even begin to code, this is atrocious.

Out of this resentment I and a couple friends set out to build an MVC system where newbies start with the models (backbone.js) by creating them on a smartphone using only their browser. And once you are done, the app goes live. See it at http://urbien.com and its open sourced client at http://github.com/urbien/urbini

Laying out the main concepts of your future app, and connecting them is not easy for noobs. Hack, even for developers sometimes it is a bit of a puzzle. You need to scratch your head a couple of times when you make the domain model for a new app. But at least this is all you need to do to get the app running with our system.

Afterwards you can start tinkering and tweaking, by changing themes, images, modifying the underlying templates (HTML) in-place, and connecting apps IFTTT-style, with a tiny plug script.

Would you like to review and may be even help us make the design friendly to geeks-who-can't-code?

Re: Want to Learn to Code? Start Small and Have Fun

#4
I don't get it. What do people mean nowdays when they talk about being a "coder"?

It seems everybody want's to build stuff before understanding the fundamentals of computing. I don't see how jumping right away to trying to build stuff for the web can make it easier for someone to learn to program. No talk about algorithms, datastructures, and so on.

I'm not dimissing this approach, I just feel like it is not the most productive in the long run. It may lead to the development of bad habits, cargo cult, and stuff like that, derived from misunderstandings of how computing works.

EDIT: as an example.. i had a friend that learned to program the way you suggested, though he lacked knowledge of basic stuff like recursion, ordering and search algorithms, and so on. He sure could get things done, but not rarely the approach used had extremely bad performance or did things like modifying data shared between threads in an unsafe maner.

Re: Want to Learn to Code? Start Small and Have Fun

#5
Don't bite off more than you can chew. Goes for a lot of things. I used to write lots of short stories, then I started working on a longer, novella length piece. After ten chapters or so I got sick of it, but didn't want to start anything else with that unfinished. Pretty much stopped writing after that.

Re: Want to Learn to Code? Start Small and Have Fun

#6
post #4

I don't get it. What do people mean nowdays when they talk about being a "coder"? It seems everybody want's to build stuff before understanding the fundamentals of computing. I don't see how jumping right away to trying to build stuff for the web can make it easier for someone to learn to program. No talk about algorithms, datastructures, and so on. I'm not dimissing this approach, I just feel like it is not the most…

Totally agree with you that the skills learned from messing around won't turn you into a fully skilled programmer. My argument is that if he'd learned algoritms, recursion, data structures, etc. he probably would have hated and dropped it, while instead he at least knows something, has the ability to teach himself more, and hopefully has fond memories. It's much better to foster a true interest in programming - even if they're not very good - if it will then lead them to improve themselves and enjoy doing it.

Re: Want to Learn to Code? Start Small and Have Fun

#7
post #4

I don't get it. What do people mean nowdays when they talk about being a "coder"? It seems everybody want's to build stuff before understanding the fundamentals of computing. I don't see how jumping right away to trying to build stuff for the web can make it easier for someone to learn to program. No talk about algorithms, datastructures, and so on. I'm not dimissing this approach, I just feel like it is not the most…

As always, it depends on the person and their specific goals, but I think diving in before learning the fundamentals is a better strategy for the reasons he's getting at in the blog. The biggest decider in whether you will be successful at a new skill is if you put in the hours, and you are more likely to put in the hours if you are having fun and engaged. If putting together a crappy web app makes you stick with it better than learning data structures, then it's better. Plus, for the majority of us, the end product is the real goal, and we only care about algorithms as far as it helps us achieve those goals. Lessons on code maintainability and algorithms will seem much more relevant and engaging once you tried to add features to your spaghetti code base or figure out why your application was so slow. Also, for some people who have a specific end goal in mind, maintainability or algorithms really don't actually matter because they have smaller goals.

To me it's similar to learning an instrument. Learning scales and doing finger exercises may be more useful practice than just playing songs you like all the time, but again, what's more important is that you consistently practice. As you learn more songs, you might struggle on parts or want to improvise and then you will be more engaged to learn technique or scales, and some people will be happy they can strum a few chords and never worry about more. In short, 1000 hours of mediocre practice will usually beat 10 hours of perfect practice, especially because the mediocre practice provides the motivation for the perfect practice.

Re: Want to Learn to Code? Start Small and Have Fun

#8
post #6
post #4

I don't get it. What do people mean nowdays when they talk about being a "coder"? It seems everybody want's to build stuff before understanding the fundamentals of computing. I don't see how jumping right away to trying to build stuff for the web can make it easier for someone to learn to program. No talk about algorithms, datastructures, and so on. I'm not dimissing this approach, I just feel like it is not the most…

Totally agree with you that the skills learned from messing around won't turn you into a fully skilled programmer. My argument is that if he'd learned algoritms, recursion, data structures, etc. he probably would have hated and dropped it, while instead he at least knows something, has the ability to teach himself more, and hopefully has fond memories. It's much better to foster a true interest in programming - even…

Yeah. And as a newbie, which sounds like the more plausible path to successfully becoming a real programmer?

1. Can't do anything -> Learn to build stuff -> Learn to write good code

2. Can't do anything -> Learn to write good code -> Learn to build stuff

Plenty of folks need the motivation of seeing what cool stuff they can build to make it through the dry parts.

Re: Want to Learn to Code? Start Small and Have Fun

#10
post #6

Earlier quoted context omitted.

Totally agree with you that the skills learned from messing around won't turn you into a fully skilled programmer. My argument is that if he'd learned algoritms, recursion, data structures, etc. he probably would have hated and dropped it, while instead he at least knows something, has the ability to teach himself more, and hopefully has fond memories. It's much better to foster a true interest in programming - even…

Yeah. And as a newbie, which sounds like the more plausible path to successfully becoming a real programmer? 1. Can't do anything -> Learn to build stuff -> Learn to write good code 2. Can't do anything -> Learn to write good code -> Learn to build stuff Plenty of folks need the motivation of seeing what cool stuff they can build to make it through the dry parts.

My (heavily biased) recommendation - start with c++ or some other annoying, slow language. I know other people say learn python or ruby, but I think that makes for sloppy programmers and bad habits.

First, read Introduction and Basics of C++ in the link below. Then make a text based rpg with 1-2 rooms. I would have a character and two bosses each with with power, toughness, and 1-2 attacks. Then read Compound Data Types and Object Oriented Programming from the link below. Finally, revise the code of the game to use objects (don't worry, that will make sense once you finish reading). Also, to emphasize your bossness, say that are "refactoring" your code.

As a gamer, I thought it was cool that I could make a simple game like this. Maybe you won't. In which case, my suggestion probably is worthless. But, I think that learning a more systems level language will force you to think more about your code and make you write better code in the long run.

Links: tutorial - http://www.cplusplus.com/doc/tutorial/ compiler - http://www.microsoft.com/visualstudio/eng/products/visual-st... - if you are on windows. If you're on linux, install g++ (sudo apt-get install g++ for ubuntu/debian and sudo yum install gcc-c++ for Fedora). If you're on a mac, no idea, I don't use macs.

Post reply on HN