5 ms·
I've tried to teach my friends and acquaintances that are interested in programming, but my curriculums never work out. It seems that the bigger problem for the
by kevin_rubyhouse 14y ago
I've tried to teach my friends and acquaintances that are interested in programming, but my curriculums never work out. It seems that the bigger problem for the guys I'm talking about (high school and college age) is self-motivation and drive that they are unfamiliar with from their academic careers. Anybody motivated enough could learn programming because all of the necessary resources and training is freely available. The OP's curriculum looks like a fantastic way to get into JavaScript for somebody motivated. The bigger question then is, how do you motivate somebody that likes the idea of programming to also happily accept the hard work involved?
- cabbeer 14y agoadderall
- csihar 14y agoShow them how much money they can make if they stick with it. Spending a solid year and maybe a hundred bucks on books to teach yourself how to code can easily get you a higher starting wage than a lot of people with bachelor's degrees and tens of thousands in student loan debt.
- kevin_rubyhouse 14y agoThey need to be intrinsically motivated or else they will be B or C players. I'm only interested in cultivating A players. It's something I can't do, and it's something that would be extremely valuable to any organization (like any company I run for instance.)
- thirdsun 14y agoI guess the key to staying motivated is the need to apply these (potential) skills to actual real world problems - no matter how small they may seem. That said, I'm trying to get into Rails and Ruby and I'm in a similar boat as the friends you described. At work I'm a FileMaker developer, which might sound like amateur hour to the HN community. I'm very well aware of FileMakers shortcomings, but it also works quite well for our little non-tech company, which is why there is no immediate need to learn more advanced languages. Add to that outside my day job, I'm a musician/producer - this is a hobby as well as an occational source of income, but it takes time and there's only so much left when I get back home, which caused my drive to keep learning to behave more like an on/off relationship. Nevertheless I try to hang on to it. Having experience with developer tools as well as audio production software and hardware, I have to agree with you - people interested in programing have everything they need readily available. Sure, it got a lot easier for musicians too, but usually a decent DAW, plugins or audio interfaces and monitors still require a financial investment, which certainly helps to remind you about your original goals. Meanwhile frameworks, editors and documentation are mostly free - combined with limited time and a lack of concrete need for your new knowledge, it can be tough.
- kevin_rubyhouse 14y agoWell, what is motivating you to get into Ruby on Rails in the first place? If it's money or a better job, is there anything else driving it?
- thirdsun 14y agoI like the company I'm working at and I'd like to contribute by taking our in-house solutions based on FileMaker to a web application. Furthermore I want those skills as a backup - in case I want (or have) to look for another job, FileMaker isn't going to impress. Also, while the music is certainly my passion, it's unlikely that I (or most other musicians for that matter) could make a living with it. However those reasons sound rather career- and money-centric. It's not all that rational though - I like making and creating things, whether it's music, software or design - but I value doing things right and with care. Learning a "proper" language/framework and being competent with it would help a lot and I'd consider it as essential.
- bcoates 14y agoI think the secret is to break down the distinction between computer operation and computer programming. If they're interested in computers and the stuff you can do with them a gentle way to get started programming is to find and use whatever scripting language whatever programs they already use have to automate stuff and make random creative hacks, rather than starting from "hello, world" and learning the fundamentals first. For example: Have them screw with the interface of their favorite websites: pick a greasemonkey script that already does anything on that site and change it to do something different. Learn the macro/scripting interface of whatever productivity software they have some reason to use already and make it do something. Find a game they like that has an active scripting or modding community, and fiddle with the game rules. The idea is to make the mental leap that writing software is just another way of getting the computer to do what you want, and that there's one big continuum from poking buttons in a dialog box to amateur hour hacking to writing "proper" software. Eventually you'll have the ambition to do something that requires more than just plugging pieces together and making edits to stuff other people wrote, and that's when you'll be self-motivated to obtain the knowledge that will make you a more effective programmer. I realize this is at a way more primitive level than most people think of as learning to program, but IMHO the CS 101 stuff where you learn a language and how to make simple programs from scratch is closer to the "middle" than the "beginning".
- yareally 14y agoI'd say the greatest key to motivating someone to learn and keep learning is to have a feeling they're accomplishing something. Small projects that make it clear the person is getting somewhere and finished in a short amount of time might be the key to that. As we program longer and do much more complex projects, we tend to lose how impressive even small things are, such as building a menu on the command line or taking input from a few html boxes and spitting out a reply. To someone just learning the basics, all of that seems quite amazing I have found while tutoring a friend that was starting out programming. Others have pointed out that making projects that are of interest to the person learning is also a key. I think combining both of those is perhaps the best solution.