Jump to content
  • Advertisement
Sign in to follow this  
nooblet

Language Advice

This topic is 2027 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello!

First and foremost, I'm very very sorry for creating another thread about this same topic. I've been searching the internet for opinions regarding this, but there's quite the diversity in responses it appears. Basically, I'm in a pickle between learning C++ and C# at this point. I'd like to elaborate for those who are interested in helping me.

 

I've been programming for many years, on and off, originally learning C++ and then migrating to C# when I realized how much easier it was. I absolutely love to program, but when I start to need to learn the "intermediate" or "advanced" topics of a language, I start to get discouraged and stop programming for months. I want to dedicate an hour or two of my time each day for the next year or so to just learn a language from the absolute basics to the more advanced topics. I don't just want to develop games, I want to become a programmer. I know for a fact that I'll have to learn C++ at one point in my life, but when I think about pointers, linked lists, algorithms, etc., I just want to immediately say "nope" and go back to C# where it's nice and cozy and I have someone holding my hand.

 

Basically, I'm relatively comfortable with both; with C++ I stopped using it when pointers were involved, and with C#, I stopped when I realized I had no idea what dictionaries do, how to do exception handling, or how to handle events. I want to become a programmer but I always get intimidated when it comes to more complicated topics and discourage myself from programming the next day. Not only that, but I can't ever find any good resources that appeal and grab my attention, and when I search on the forums, it usually has outdated recommendations that don't really work for me.

 

Anyways, I hope that covered where I'm at. If you have any recommendations, please feel free to throw them my way. Thanks so much!

 

TLDR: Stopped learning C++, went to C#, getting stuck at the "harder" subjects for both languages, and now I'm having trouble deciding if I should continue down C# or start to learn C++ now to make myself a better programmer. 

Share this post


Link to post
Share on other sites
Advertisement

Hi frob,

 

It's funny that you of all people responded. I found a response from you in another thread (prior to creating this one) so I went through some of your posts to see your opinions and to do some more research. That, and I enjoy reading posts from those in the industry currently. To answer your question, although it's rhetorical (at least, the way I interpret it), I want to be a professional programmer (more specifically a game developer, but I'd like to branch myself out because I feel like the industry may be out of grasp for me), so it appears the next steps for me is to pick up a C++ book and try really hard to study these concepts and work my way towards becoming a professional.

 

Thank you for your insight, hopefully I can motivate myself to continue past my frustrations.

Edited by nooblet

Share this post


Link to post
Share on other sites

Understood! I plan on going back to school this Fall, possibly taking care of my general education credits at a community college and then going to university again to work towards my CS degree (currently have enough credits to be considered a sophomore but didn't register for classes due to work). I think the points that you bring up is something that I needed to hear/read. I needed a reminder that I'll have to deal with topics that I may find boring to help land a career that I've wanted since high school. Again, I appreciate you taking the time to help me out with this! Thank you very much. For right now, I'm going to study the implementation and start self-teaching myself so that I can build my portfolio during school, and then I'll work towards the other topics when the time comes.

Share this post


Link to post
Share on other sites

Other than going to school, one can certainly be a self-taught programmer. But, the main requirement for this is interest.  You must be interested and excited in learning about programming and game-related topics like rendering, physics, scripting, optimization, multi-threading, and many others.  I'm not saying that you need to be interested in all of these, but being interested in at least some is good.  If your reaction to having to learn about pointers and other topics is to not want to do it, then you might want to re-examine why you want to do this in the first place.

 

If you do decide you have the interest and want to continue teaching yourself, then I'd suggest going about it like this: Start with a broad and shallow approach, working through a good introductory book, and then do small projects afterwards.  The idea here being that in game programming and C++, there's a lot to cover and master.  Trying to master things one at a time is hopeless and doomed to failure.  You need to gain a wide understanding of what the language can do and what topics will arise in game development.  At that point you'll know what questions to ask, and where to look for answers when problems arise.  Then, to get a deeper understanding of specific topics, do different small game-related projects.  This will allow you to do something that's interesting, and where game-related issues will come up naturally.  You will have to use specific algorithms or programming techniques, and as you get more familiar with those and implement them, at that point you will get the deeper expertise you need... in that specific topic.  Do this over a year or two and then you'll start to be a decent all around game programmer.

Share this post


Link to post
Share on other sites

Basically, I'm relatively comfortable with both; with C++ I stopped using it when pointers were involved, and with C#, I stopped when I realized I had no idea what dictionaries do, how to do exception handling, or how to handle events.


I don't have much to add that wasn't already said, but I do have this to say. You will have a better understanding of what dictionaries are if you have a solid grasp of concepts in C++ like pointers and data structures; a dictionary or map is often implemented like a hash table or a red-black tree. I know that this knowledge isn't quite useful now, but my point is, if you progress in your understanding in one language, you will have knowledge you can apply to both languages.

Share this post


Link to post
Share on other sites

Thanks everybody for your input with this.

 

@0r0d- It's not that I don't want to learn the material, it's the fact that I get frustrated with myself when I can't grasp the concept initially and eventually give up and blame the resource from which I'm learning the concept, although it's just me not pacing myself. Whenever I program without studying from a book or tutorial, I always have a blast and end up doing it for 12-14 hours straight because I don't realize the time has flown by. 

 

@Ectara - Yeah, I definitely understand what you mean. When I was studying C++, I learned some object-oriented principles, and of course the basics (like variables, functions, blah blah), so when I transitioned into C# it was amazing how much simpler it was to learn and grasp new concepts instead of spending days reading books and tutorials to try and figure out what functions and methods meant :P.

Share this post


Link to post
Share on other sites

If it helps, most of my C/C++ knowledge came not from reading books cover-to-cover, but from deciding what I want to do, and writing until I didn't know how to do something I needed to do. Then, I looked up how to do it in the most efficient way, and moved on. Repeat 100,000 times, and you're a wizard. I do have a lot of books, but most of them cover topics I already learned elsewhere.

If I had to pick something to understand first and foremost, go for pointers. Linked lists are nothing without pointers, and once you learn what a pointer is and why it is one of the most important things in a programming language (whether you manage them yourself, or the language does it for you), a lot of things will come easily.

Share this post


Link to post
Share on other sites

my advice is to learn by doing, not learn to learn.

It's pointless to sit down with a C++ trying to understand everything without a final target.

Once you have the concept of functions and flow control you have all you need to create whatever program you want.. yes, the code will be ugly but it is important you get something done... only by doing messy programs you will really understand why higher abstractions are good and useful.

Learn to learn, in something as practical as programming, is just wasting time imo. Knowing a programming language is only a small part of being a programmer, the real skills are problem solving and the ability to find the info needed to solve a problem... that is where the line really is.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!