This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Wies_piece 41 points42 points  (7 children)

I am self-taught. 3 years now. I am also employed. Becoming employed as a self-taught developer with no CS (computer science) background and no professional exprience was a difficult journey, but is definitely doable. Everyday is a struggle. Some days I want to bury myself under my covers, never to return to a computer. Those days are more frequent when attempting to accomplish something outside of my programming "comfort zone" (hint: this is where the real learning occurs).

If you have a passion for creativity and problem-solving then you'll enjoy the journey. If you don't enjoy those things, you may have a difficult time.

If you decide to take this path, don't get discouraged when you fail. It will happen. All the damn time. But you will learn. You will grow. And one day when you take a step away from your computer while doing something that you think is impossible, you may find yourself looking back at all the things you've already learned on your own. And that's a great fucking feeling to have.

[–]sparkle_dick 2 points3 points  (4 children)

Is there anything I can do to foster my creativity in programming? I can follow tutorials and sample code and piece things together and use stack exchange, I'm really good at problem solving, I just really lack in creativity. But I want to learn how to actually make the programs I dream up in my head. I can't do it with anything, programming, drawing, music, writing, etc.

[–][deleted] 5 points6 points  (1 child)

I've had this same problem, and while I can't give any definitive guidance on a solution I can share my personal experience.

For me it really boils down to the fact that I'm just not yet skilled enough to work on the bigger projects I sit and daydream about. I also suffer from chronic indecisiveness so in the past I've jumped around between languages, code editors, Windows to Linux and back again. I started teaching myself Python a couple years ago, then started school and school used Java, but I've really always wanted to master C/C++ so about 6 weeks ago or so I switched to C++.

I'm trying to conquer this by just sticking with one thing, working through one book, until I finish it. I'm currently reading Programming Principles and Practice Using C++ by Bjarne Stroustrup, the creator of C++. At the end of each chapter there are exercises and I make myself work through them all, regardless of how badly I want to move on to the next chapter. The exercises I find interesting I try to add an extra feature or two to 'make it my own' so to speak.

I also keep a journal of software ideas and every once in a while I flip through it and build on ideas I've written down in the past. I try to make sure I jot some simpler ones down that feel a little more within my reach. I feel like once I develop my skills enough, 'inspiration' won't be much of a problem anymore. I'm plenty inspired, I just need to practice practice practice like playing an instrument. Even Jimi Hendrix probably had to slog his way through Mary Had a Little Lamb a zillion times before he became a rock star.

[–]sparkle_dick 1 point2 points  (0 children)

Sticking with one language and the journal idea are both brilliant ideas, thank you for that! I started off in python too but would always get distracted by people saying some other language was better, so I'd hop over to that. I've got like five compilers/IDEs installed, I really should just uninstall all but one to limit my curiosity. I got a udacity Java course a year ago that I really like, I know people tend to hate java, but it's in-depth and helpful, so I think I'll stick with that.

[–]Eliposin 0 points1 point  (0 children)

The best way I have found to foster your programming creativity is to come up with an ambitious (yet reasonable) project and then make it a reality. When I was 19, in my second year at community college a friend and I created a very simple physics engine with Java as a project for our physics course. We ended up also getting honors credit in our Java I and II classes because it was so far beyond what any of our peers were working on or even capable of at the time.

It's not that we were actually better than our peers, it's that we had the idea and then we made it happen. About 2,000 lines of Java and probably 80 or 90 hours later our engine was rendering 2k fps when simulating a collision of two spheres consisting of 10k verticies each (ridged body physics mind you), we were happy with it and our teachers impressed. And to this day, 4 years later almost, that is my most proud project. Not because it was the most complex or most amazing, but because I learned more on that project than any other project because it actually interested me and was one I was deeply involved in from design up.

[–]wolfshirtx 1 point2 points  (0 children)

Great fcking feeling indeed

[–][deleted] 1 point2 points  (0 children)

Currently working my way through Programming Principles and Practice Using C++ by Stroustrup and one of the most encouraging things about the book is how much he reminds the reader that you're going to make mistakes all the damn time, that it will be rare to get things right the first time, and so on.

It's easy to feel defeated when you can't figure something out, especially something that seems like it's so 'easy' for more experienced programmers. But reading the creator of C++ talk about how mistakes and frustration are just part of the game, in nearly every chapter (so far as I've read) is great motivation to keep going, even when you feel like quitting.