so I just finished my second semester of C++ in college (majoring in software engineering) and I wont have another programming class in a while so I need some ideas for how to maintain and expand on my knowledge of coding in C++.
The first thing that comes to mind is just writing my own code and practicing, but I don't see that expanding my knowledge much. Are there ways of going about this that would also help me learn more about C++? Another thing I have thought of doing is learning another language like Java to help broaden my skills.
If anyone has suggestions on how I should go about working on my coding skills to be the best that they can be, I would love to hear them!
The first thing that comes to mind is just writing my own code and practicing, but I don't see that expanding my knowledge much.
It's the only thing that expands your knowledge. The only way to learn to code is to code. Books and classes are a great way to aid the process... but all the books and lectures in the world won't teach you crap until you actually sit down and start writing code.
Like any art, the name of the game in programming really is practice. Practice, practice, practice.
Are there ways of going about this that would also help me learn more about C++?
Start making programs that you wanted to make. Step a little outside your comfort zone.... there should be parts of the program that you've never done before and/or don't know how to do. Then learn how to do them.
Another thing I have thought of doing is learning another language like Java to help broaden my skills.
Learning another language is great, but will teach you different things. I'm not saying it's a bad move (it's not... it's a great move), but the question really is "what do you want to learn?"
If you want to improve your skills with C++, learning Java will not help with that. The only way to maintain/improve C++ skills is to write C++ code.
But if you want to improve your skills with fundamental programming concepts, Java will help with that.
All of what was previously said, but with some additions I think you should take into account:
The key is practice, but practice properly. For example, if you start to give in on const correctness, then it will show. Practice, but practice right.
I also want to say this: practice what you already know, until you can write it in your sleep, and then move into foreign territory. You don't want to be unsure about something you should already know, while you're learning something new.
Lastly, push yourself. Do something you don't know how to do yet. Create a project that requires you to do something outside of what you already know, and then build on it.
I am self-taught, and have been practicing C++ for about just over 2 years now. I come up with all kinds of projects.
Making games is a great way to learn stuff. I learned programming with GameMaker, then I studied C++ in college and in a few weeks I'll start Java, but I'm still doing C++ in my free time, especially games because we didn't learn how to make a game engine or physics during our classes. C++ is great with multiple inheritance and virtual functions.
Here's a few ideas:
mind game similar to mastermind (teaches how to use graphic libraries)
space shooter (teaches how to deal with physics and inheritance)
platformer (teaches more about animation, physics and precise collisions)
liquid engine. Just try making a glass of water which falls on the ground. http://grantkot.com/MPM/Liquid.html