7 ms·
To Learn Programming, Do Projects You Care About
- PunchTornado 10y agoyou really need to decrease the width of your content. it's hard to read.
- metasean 10y agoLooks extremely similar to the original CodeKatas list - http://codekata.com/ http://codekata.com/
- xamuel 10y agoI cut my programming teeth on the open-source engine of an online game I was into. It was C, and I had no prior knowledge of C, or anything else besides BASIC. I didn't care about career development or resume padding. I was just a teen! I wanted to understand how that game worked, maybe add some cool stuff to it. Things like pointers, memory management... I learned by copying existing code. I understood it because I had experienced it. If it was code for a fireball, I had experienced that fireball, in-game. Now I'm a full-time programmer making more money than anyone in my family ever dreamed and it all started with that open-source game engine :)
- mentos 10y agoRunUO for me ;) I can still find a post from 2001 on their forums where I was overwhelmed with all of the { and } squiggles
- aneisf 10y agoRunUO here too. I'm still in touch with many of the people I met between the RunUO and UOGamers communities, and lots of us have gone on to work in industry. Don't know where I'd be without it honestly.
- supernintendo 10y agoThis comment brings me so much joy. Ultima Online is my favorite game of all time, having played since T2A (I was nine years old at the time). I have fond memories of hacking away at my own shard, cobbling together scripts and editing MUL files (a custom file format that the game used to store binary content) to add new creatures and items. My first exposure to "programming" was SphereServer, which used one of the worst scripting languages I've ever written in retrospect. Later I took a stab at C# with RunUO and while my attempts never manifested into anything noteworthy, they did establish a foundation for the career in software I have today. It warms my heart to see kids embracing this sort of creative spirit for games like Minecraft. The modders of today could be the engineers of tomorrow.
- 0xfeba 10y agoI have a similar experience. Got fascinated with computers before school offered classes. Learned QBASIC, then VB (3?), then C (the basics of each, not mastery!). Eventually majored in CS and graduated with the degree. But I find a complete lack of passion for 80% or more of my colleagues. I mean, I don't really care that much about the product I am making, but I still want to do a good job and learn something I can use for myself (or my future career). Other people just seem to "write code to make it work". Don't follow tech news, don't follow security news, etc. Just a job to them I guess, no interest in side projects.
- id122015 10y ago
- Heavenhunter 10y agoThanks for sharing these insights. I had similar problems when I started with Python!
- adrianN 10y agoI have the problem that basically all my needs are already addressed by existing software.
- bloomca 10y agoThis is actually true only to some degree. Of course, you can't create your own full-fledge game, but in terms of automation you can do a lot. You like to listen to certain radio, but it has shitty interface? Build site/app/etc to address it! Yes, it will be small and won't do anything else, but for you it will be helpful, so you will do it with passion. The same applies for other "utility" stuff – you can create your own flashcards service, which will be super convenient exactly for you, and so forth. So, don't underestimate yourself – software often is good only to some use-cases, not for yours.
- adrianN 10y agoMy usecases are typical enough that I don't encounter things that I could improve, or if I do I would have to replicate a lot of the stuff surrounding that particular minor annoyance. That would usually require man-years of work.
- fergyfresh 10y agoExcuses are the nails that build the bridge to failure.
- rpazyaquian 10y agoI dunno, man, there's only so much tech can do. There's not much an app or CLI can do for the economy or civil rights legislature, for example, and those are the two biggest problems for me.
- deleted 10y ago[deleted]
- fergyfresh 10y agoI had that problem too. So then I started making things that I thought were humorous. -Very innapropriate flappy bird clone. -An app that makes a playlist out of a bands most recent setlist on google play. -An app that reads articles using tts and allows you to play/pause/save them. -An app that lets you tell people you are on the way (like yo but with location streaming) Just think of something you think is funny or talk to your friends that are into tech either directly or tangentially. A lot of my ideas come from phone calls my Mutual Fund investing best friend.
- gshubert17 10y agoAn older source of interesting projects is "Etudes for Programmers" by Charles Wetherell, in book form (out-of-print, unfortunately): https://www.amazon.com/Etudes-Programmers-Charles-Wetherell/dp/0132918072 https://www.amazon.com/Etudes-Programmers-Charles-Wetherell/...
- Nzen 10y ago<formatting edit> The college I attended had a copy. I leafed through it. I recall (but didn't reimplement) * map coloring * maze generation * some company forecasting / resource allocation game * a vm and compiler * huffman encoding * conway's game of life
- samayshamdasani 10y agoAgreed. This was on HN two days ago, but I created https://enlight.ml https://enlight.ml (a place to learn to code through projects) Let me know your thoughts!
- bloomca 10y agoI personally think that the problem with your approach is exactly as it is described in the article. You offer tutorials which you can compare with your implementations, but let's be honest – it is boring as hell. People usually treat it as a mundane, like they have to study it and go through it. So, there is no personal thing in this, and therefore no passion. The article is basically the opposite – do something! But do it by yourself, do what is interesting, just for the sake of doing and enjoying. If you ask me, I'd say it is too boring to make 1000-ish timer or some basic app.
- carlmcqueen 10y agoI got started on programming scripting for AOL chatrooms, making tools that let me type out larger blocks of text and it would quickly enter it so it showed as concurrent messages for turn based role play. Then, Starsiege tribes had a pretty open to modding stance and started making custom chat scripts, which evolved when more advanced programmers let you add on to their work. This idea is so true, I watch as the foster kids my wife and I do respite care for get into programming through sharing time with me getting a raspberry pi into a minecraft servers. Even just having customizable options got them very excited.
- gregmac 10y agoThis is the advice I've given anyone who asks me for years now. Build a utility to automate something you do anyway, build a website, make a simple game, or even just try to build your own clone of a utility/app/site/game you like. Don't worry about language, frameworks, or any of that distraction. Just get something working. You know you're on the right track when you find yourself thinking about a new feature to add or how to solve a problem when you're in the shower/going to bed/driving/etc, and can't wait to get back working on it.
- b1c837696ba28b 10y agoYes, for decades I have practiced and preached this. Even more motivating: take a job that requires a deliverable in your language of choice. Swim or be eaten by sharks!
- Gruselbauer 10y agoThat's what I am currently going for. Took a job that I cannot afford to lose, doing something most people on here would accomplish in an afternoon tops. I guess your stance is right. You don't grow unless you're challenged.
- denzil_correa 10y agoYou are god damn right. Programming is a means, not the end.
- kpennell 10y agoCouldn't agree more, I wrote a similar piece on this a couple years ago: Solve your problem with Javascript It’s the best way to learn https://medium.com/@kyleapennell/solve-your-problem-with-javascript-fe6a4fcb5241#.cgq6h2h5n https://medium.com/@kyleapennell/solve-your-problem-with-jav...
- qwertyuiop924 10y agoYep. That's pretty true. This is why I write weird crap. Like MUDs, Bulletin Boards, and other nonsense. Right now, I'm trying to write a video game for the Gameboy. Or something. But then I got distracted learning about the 6502. And now I'm getting distracted by something else, as we speak. I start many projects. I rarely get far.
- modzu 10y agothis goes for learning anything
- a3n 10y agoI've given the following advice to people who want to learn python, which overlaps with people who want to learn programming: Go through the python tutorial at python.org, until you start to get bored and start having ideas. Then write something simple that occurs to you. Then write something a little more interesting, and start treating the tutorial and other resource as resource, and your creative efforts as the main thing you're doing.
- hsavit1 10y agoI don't understand why the author references the "mega Project List." The author cites the github list as an inspirational tool, which seems quite contradictory as the author also pitches using programs to solve problems that you personally care about. So what does the author actually recommend?
- Kluny 10y agoSee if there's something on the mega project list that you care about.