To Learn Programming, Do Projects You Care About
datarebellion.com
datarebellion.com
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 :)
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.
I do little self programming, but the task I want to do is more important. When I finish I dont care much about the code just like I dont think about the inventor of electricity when I use it. Also programming alone is huge area and takes all my time, and I dont understand how employers sometimes ask for so many jobs in a single job title.
I really dont know much about programmers as employees as I have never worked in the same department with them, but I wish to work in a technology company again.
Not on Github, but this fork is: https://github.com/InfiniteAxis/SmaugFUSS
I can still find a post from 2001 on their forums where I was overwhelmed with all of the { and } squiggles
When I was younger, I really loved games. So I spent a lot of time reading books about Kevin Mitnick and hackers, and also played around with C++ and a little bit of game development. It never really came to fruition.
In college, I was premed and then a Narrative Studies major, and also worked as a lighting designer and lighting technician. However, a lot of the logic flows I learned as young teen helped with lighting programming. It was really easy to pick up front end web development... and then eventually, become a back end engineer. Definitely not the traditional path since I never was a CS major, but learning a lot of the fundamentals as a kid helped.
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.
I guess your stance is right. You don't grow unless you're challenged.
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.
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.
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.
The other day, I was making a website as part of my project. I needed a static site generator. As I looked over the options, I became increasingly of the opinion that they all sucked, and were all far to complicated, especially given my needs (simple blog site: Put together some HTML fragments with templates, and generate an index from another template). I could write something better than this. In fact, I was about to visualize a design when I realized that I had six projects going and really did not need another one.
I see this with basically everything I use and look at in life: there's always something that can be done better (or better for me at least). Things I'd like to change on my car, things I'd like to change on my house, etc. The problem is lack of time, and too-high barriers to entry. For instance, my car's pretty new and there's some things I wish I could change on it which are really just software, but it's all closed-source and proprietary and completely inaccessible so it'd be a giant project to reverse-engineer it to make even a simple modification. But with open-source software running on a PC, this is a golden opportunity to be able to jump in and learn how others did something, and be able to make your own changes with a relative minimum amount of time getting set up (i.e., not needing to do reverse-engineering). Even writing your own applications is pretty easy these days with Free/open-source compilers, toolkits, libraries, etc. You can do all kinds of things with Python, for instance, and all the tools you need (including the OS) are freely downloadable.
https://www.amazon.com/Etudes-Programmers-Charles-Wetherell/...
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
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.
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.
Solve your problem with Javascript It’s the best way to learn
https://medium.com/@kyleapennell/solve-your-problem-with-jav...
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.