• Path Layout For Software Development
    3 replies, posted
I recently started learning C++. Well, I tried once before but I was pretty young and got impatient quickly. Now in about three days (a few hours a day) I am writing my own functions, doing basic math and am comfortable with using different types of data with input and output. That's pretty fast, I hope. Right? Anyways, I'm looking into software engineering maybe as a career. I'm not sure if I would want to work for a company or freelance, but the main question is: What kind of path should I take for learning C++? I'm probably going to use my knowledge of C++ to make games at some point, I even have one in mind. But I want to know, where should I go after I have basic C++ knowledge? What steps do I need to take before I can start making programs, compilers and simple Operating Systems (DO NOT think I am getting ahead of myself here. I'm not retarded and understand these kind of things take countless hours of time and thinking before something even close to this can be done)? Where should I go after I've finished my first book? Something as simple as Functions > Math > Advanced Math > Programs etc would be helpful (I don't know how it would look, that's why I'm asking the question). The reason I mentioned Operating Systems and compilers is because I read that someone who has made one in their free time looks great on a resume, so maybe that should be my final step? Something I can work towards? I'm hoping Facepunch can give me some clarity on which steps to take in learning C++. Reading over this it makes me sound kind of ignorant, and I'm not. I understand the time and dedication it takes to do these things. TL;DR: I'm wondering what steps I should learn C++ in until maybe I get to the point where I can start working on a basic Operating System, and where to go after I've finished my first book, etc.
With the OS and compiler, learning about Computer Architecture and assembly would be a great step towards this. As far as the programming aspect goes, try making projects that are both interesting and can be a challenge.
Well what I'm doing right now as I'm going through my book is using my knowledge to make a linear text based kind of game. Every time I finish a chapter I try to apply what I've learned and incorporate it in my game. I find it very useful and fun. What I'm most hoping for is what I should be doing after I finish a basic C++ book.
Get Effective C++ by Scott Meyers; it's an awesome intermediate book. If you're taking a look at programming games, get a book about that. Don't get one that teaches C++ along the way (since you'll already know that), but one that teaches common pitfalls and useful design patterns. Writing an OS is not that hard; there's a wiki-site that has a bunch of tutorials. You don't even need much assembly. To write a compiler you will need assembly knowledge, unless you've meant compiling to bytecode and let an interpreter read that. I don't think it's that hard to write a simple compiler, but a well optimizing one is probably a hell of a task. You could also use some backend such as gcc or LLVM, which would ease the load on that part; I'd definitely take that route if you're after an own programming language. LLVM can also be used as a backend for a scripting language, as it supports JIT compilation as well.
Sorry, you need to Log In to post a reply to this thread.