27 ms·
This is a great question. Thanks for asking. I would hate to lose everything I've learned, but thinking about what plan I would take to learn everything again
by kotrunga 9y ago
This is a great question. Thanks for asking.
I would hate to lose everything I've learned, but thinking about what plan I would take to learn everything again makes things interesting! It's also a challenging question, because I think the way things turned out was a lot because of my interests and the opportunities that were available at the time. Obviously, this is probably the same with everyone else. But, let's assume I don't need to worry about that, and for the sake of simplicity, I'm just following a plan and have all the motivation and discipline I need.
Disclaimer: People might not agree with this way of doing it. It's just an opinion, just for fun! there's no "one" right way. That's the real answer. But, let's continue!
1. I would probably start with C. I would read through the K&R book, and then get proficient enough at C to have a solid understanding of the main concepts that everything else builds off of. From simple things like variables, to pointers, to building complex data structures and algorithms by hand in C. I would also try to complete a few projects in C, like creating a small language / lisp, building a tool or game, etc.
1b. This is more of an idea- but something I would be sure of is to pick something and stick with it. I've moved around too much from getting excited about wanting to learn everything, and then I end up missing out and learning next to nothing. You don't want to stick on something for too long, unless that's what you want to do for the rest of your life, but, yeah. Finish projects. Ship stuff. Actually get stuff done. COMPLETE things, and get feedback. If you don't wanna keep working on it, fine. But get it to a predefined goal / finish line. Then you can decide what you wanna do.
2. After C, and understanding the base, I would probably move on to trying different languages in different areas. For example, set a goal that for 3 months, I'll look at Javascript, with the end goal being to build a front end website or spa or xyz, and actually have a finished project. Or, go to C++, and do game dev, without Unity or another tool that does a lot for me. Then for the next 3 months Python, then Java/C#, then Swift, etc.
The main reason for this would be to touch a lot of things, and then, decide what area of software engineering I want to focus on.
3. Finally, I would pick a technology that I like, and an area I want to dive into. Again, predefined goals, finish lines, etc, so that I finish what I say I will. This might be focusing on backend development, a lot of what I do now. So, maybe studying Go or Javascript or Python or Ruby or whatever. But picking something and diving into it, getting good enough that I could work as a swe full time.
These are just some ideas. Also, I can't sleep, but also can't think straight b/c it's late. So, yeah. Please excuse my weirdness of choosing C. Basically, the plan would be go from the bottom up (though C really isn't the bottom, but whatever).
Just have fun. The biggest thing I'm working on now is finishing. When I start something, sticking with it, and finishing.
Let us know what you do!