I am going to college in the US in September as an international student but my school year finished in January. I have about 8 more months of doing nothing on my hands and had thought about learning C or C++ just because I have always heard that they give you a good base knowledge of how other languages work under the hood. I would say I'm fluent in Java, Swift and Python.<p>Do you have any recommendations for which one I should tackle (or neither)? If you had a good resource to help me learn as someone who isn't a beginner, that would also be great too. Thanks.
I'd say start with C because it is closer to the hardware and it's simpler to learn than C++. You will find it easier to pick up C++ later if that is required.<p>If you know a few other languages it shouldn't take 8 months to become at least proficient at C, so you might then try another language that really stretches your brain. Something like Haskell or even a Lisp. After a language that gets closer to the hardware like C try something very abstract and high level. That's why I mention Lisp above. Reading SICP [0] made me realise just how much of a logical system you can synthesize from almost nothing.<p>[0] Structure and Interpretation of Computer Programs
<a href="https://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs" rel="nofollow">https://en.wikipedia.org/wiki/Structure_and_Interpretation_o...</a>
I suggest looking into the curriculum of your upcoming studies and getting a headstart with whatever language(s) you'll be studying.<p>The simple truth is that unless you truly specialize, your software developer career is going to be a long string of learning things to solve a problem.<p>Look up the language you'll be studying, pick one that sounds neat, and grab the nearest tutorial that includes the words "For beginners" in the title.
It sounds like you’re way ahead of most of your peers when it comes to technical skills. Why not spend the time developing/practicing social skills or on another hobby altogether?<p>People burn out on coding faster than they think, and you have a lifetime to do it in your career. You’ll probably never get 8 months of free time again, though.
If you don't know C, you can hardly write a C++ <i>main</i> function that processes the arguments. Or use C libraries effectively (without someone who does know the C-like subset of C++ having written a class framework for you which wraps them).