Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Where to start?

Joined
Jun 19, 2008
Messages
4,135
Reaction score
2,179
I've been heavily considering changing my college major the past couple weeks to Computer Science with a focus on Software Engineering. It's something that I've always been interested in and wanted to do, and I could really see myself succeeding and being happy doing it for the rest of my career. I just don't know exactly where to start. I want to get a headstart on learning before I start classes, if I do switch majors.

Are there any really good resources you guys recommend highly? Books? Websites? Videos? Most of th jobs I have been looking at are iOS related, so I think that would be Objective C? I've also read that one should know the basics of language before they start to learn another language...? Is that true? I'm assuming it is. What should I learn first?

Hope you guys can help!

Thanks,
Cameron
 
Joined
Jan 27, 2007
Messages
1,201
Reaction score
1,067
Start reading on Java and try to start learning a bit of java, the intro courses (like comp sci 1, and comp sci 2) are mostly java related .

You'll also learn about databases and data structures so you read up on mySQL

I've only done my 2nd year, so i don't know anything else besides that.
 
Elite Diviner
Joined
May 30, 2011
Messages
443
Reaction score
95
If you're only learning programming to switch majors, you're not going to get a head start, sorry. The fundamentals take years to learn before most people can be considered remotely competent devs. For the most part it doesn't matter a whole lot which language you learn since by the time you graduate, you will be fluent in many languages.

However, there are some languages whose frameworks have enough glaring problems that beginners ought to avoid them completely until they know exactly why they're bad. PHP is one good example of a language you'll inevitably be required to learn as a software dev, except it's designed with frustratingly inconsistent behavior and semantics as a core feature, and as a first language will almost certainly teach you to be a crappy dev, and a lot of people never recover from being taught crappy practices. Javascript and Python do some questionable things, but I wouldn't rule them out as a first language because they're generally designed okay. I actually like Python as a language for teaching beginners.

C, C++, C# and Java are some of the industry standards you might want to have a look at if you're serious about becoming a programmer. For Apple development, you're looking at Objective-C and eventually Swift if you're into functional languages. If I were you, I'd spend at least 6 months learning a language before you even consider computer science as a major. A lot of people think programming sounds cool at first glance, and quickly learn it wasn't meant for them.
 
Joined
May 17, 2007
Messages
2,474
Reaction score
681
I agree with AngraMainyu, it takes a long time to understand the fundamentals. Take some time to make sure that Computer Science is really what you want to do

There's many online resources that can help you get started. One of the best ones I would argue, is MIT's online course:

It's free (some of the books you may have to buy) and it's from a good school. Look into the lectures, and maybe start reading some of the books. Don't stop there though, look at other online courses/material that is an introduction to computers and programming. Don't worry about the language you first start off with, because at the end, you'll be able to program in any language you like, as long as you understand the fundamentals.
 
Joined
May 23, 2008
Messages
1,071
Reaction score
574
The language is less important. Pick one (preferably one that's not terrible, e.g. PHP), and stick to it for a little while. Learn it from the ground up. Great developers can learn new languages, if need be, for, say, a new job, because they understand a lot of the fundamental concepts well. Do keep in mind: By the time you graduate with a comp sci degree, you won't be as good as you think you are.
 
  • Like
Reactions: emi
Junior Spellweaver
Joined
Oct 27, 2008
Messages
165
Reaction score
89
Just to give you a heads up, Computer Science is not only programming, it is programming, math and electronics. It is best to chose a language for you to learn and to axed, because in collage you will not use only 1 language you will use a lot of them (the language is not that important, just the fundamental concepts).

If you want yo be a iOS developer, the the best choice for you to start is with C then continue C++(You can go directly from C to Objective C, but C++ is a good OOP language to learn) and lastly Objective C, as an alternative to iOS is the Android which it requires to learn JAVA(Java has a wide range of applications and with a lot of jobs, starting from Android, PC Applications,Web Servlets, etc), if you are interested take a look into JavaFX too.
 
Joined
Jun 19, 2008
Messages
4,135
Reaction score
2,179
Just to give you a heads up, Computer Science is not only programming, it is programming, math and electronics. It is best to chose a language for you to learn and to axed, because in collage you will not use only 1 language you will use a lot of them (the language is not that important, just the fundamental concepts).

If you want yo be a iOS developer, the the best choice for you to start is with C then continue C++(You can go directly from C to Objective C, but C++ is a good OOP language to learn) and lastly Objective C, as an alternative to iOS is the Android which it requires to learn JAVA(Java has a wide range of applications and with a lot of jobs, starting from Android, PC Applications,Web Servlets, etc), if you are interested take a look into JavaFX too.
Thanks for the tips, Ghost. I've been experimenting and going through tutorials on Python on codeacademy.com -- is that generally an okay website to receive help from? Or should I go out and pick up a couple books as well?
 
Elite Diviner
Joined
May 30, 2011
Messages
443
Reaction score
95
Thanks for the tips, Ghost. I've been experimenting and going through tutorials on Python on codeacademy.com -- is that generally an okay website to receive help from? Or should I go out and pick up a couple books as well?

Some of the codecademy courses are better than others, but the Python one is a good introduction. Python is also a good language to start with. Codecademy is not terribly in-depth, so you'll want to find another source to learn from after a while, but there are plenty out there. You might want to check out the FAQ over at reddit.com/r/learnprogramming. There is probably a stackoverflow forum for people new to CS as well.
 
Joined
Jun 19, 2008
Messages
4,135
Reaction score
2,179
Some of the codecademy courses are better than others, but the Python one is a good introduction. Python is also a good language to start with. Codecademy is not terribly in-depth, so you'll want to find another source to learn from after a while, but there are plenty out there. You might want to check out the FAQ over at reddit.com/r/learnprogramming. There is probably a stackoverflow forum for people new to CS as well.
Thanks, man. I'm kind of reading and learning from two different sources now: (1) Codeacademy, and (2) Learn Python the Hard Way - a book by Zed Shaw. Really digging Shaw's version over CA though, I feel like I'm learning a lot more, and I'm having quite a bit of fun with it.
 
Newbie Spellweaver
Joined
Jan 1, 2014
Messages
79
Reaction score
16
In addition to learning a language you should learn about design patterns.

Too many beginners learn a language but can't use it to write anything because they don't know how to apply their knowledge. They don't know how to design an application.

Take a look at Practical Object-Oriented Design in Ruby: An Agile Primer ( by Sandi Metz ).
Short but complete and consistent book on OOD that is fun to read and is very enlightening.
It uses Ruby for code examples but material applies to any OO language ( Java / C#, C++ ).

Since you wouldn't be able to understand code examples from this book you would first need to read a little about Ruby.

First 8 chapters (roughly 170 pages? ) of Beginning Ruby: From Novice to Professional ( by Peter Cooper ) would teach you all one needs to know to fully understand code examples from Sandi's book.
 
Joined
Feb 22, 2012
Messages
2,100
Reaction score
1,271
I've been heavily considering changing my college major the past couple weeks to Computer Science with a focus on Software Engineering. It's something that I've always been interested in and wanted to do, and I could really see myself succeeding and being happy doing it for the rest of my career. I just don't know exactly where to start. I want to get a headstart on learning before I start classes, if I do switch majors.

Are there any really good resources you guys recommend highly? Books? Websites? Videos? Most of th jobs I have been looking at are iOS related, so I think that would be Objective C? I've also read that one should know the basics of language before they start to learn another language...? Is that true? I'm assuming it is. What should I learn first?

Hope you guys can help!

Thanks,
Cameron

Basically would be nicier you learn from a higher to an lower end. By the way, iOS development don't use Objective C anymore (If I'm right you can still use it, but Swift is the newer, with better resources).

On topic now, I would buy/follow some kind of course, if you want to follow this through. There are also websites for all over the internet, documentations, and all, but with courses you could simply follow the teacher teaching you the ins and outs of that, which you simply coudn't follow that on a normal book.

I would really study the basic of logic before starting a course, then you have a headstart.

Good luck!
 
Success and nothing less
Joined
Nov 7, 2011
Messages
866
Reaction score
258
Start with C#. The language has a nice syntax, and once you've got the programming fundamentals down, you'll be able to apply that knowledge towards learning new languages etc. As someone mentioned earlier; design patterns in OOP is crucial.
 
Joined
Mar 22, 2009
Messages
1,231
Reaction score
502
The language is less important. Pick one (preferably one that's not terrible, e.g. PHP), and stick to it for a little while. Learn it from the ground up. Great developers can learn new languages, if need be, for, say, a new job, because they understand a lot of the fundamental concepts well. Do keep in mind: By the time you graduate with a comp sci degree, you won't be as good as you think you are.

100% agreed. Language is less important but the algorithmic thinking and the concepts behind are (which can take a decent amount of time to develop -years)


Start with C#. The language has a nice syntax, and once you've got the programming fundamentals down, you'll be able to apply that knowledge towards learning new languages etc. As someone mentioned earlier; design patterns in OOP is crucial.

Yes is one of the languages that are easy to pick up, at least the beginning, there are also concepts in C# and design patterns that make it not as easy or nice.

You can also give it a try to the online courses at Udacity or Coursera and see how they actually look like :)
 
Watching from above
Legend
Joined
Apr 9, 2004
Messages
3,828
Reaction score
752
Mostly solid advice here so far. I'd just like to emphasize it really isn't about a single language so pick any decent one that allows you to have fun with it and create something that you can call your own. It's all about fun IMO, because if you don't have fun with your own side projects there's no chance you'll enjoy it at work either.

I can't recommend Python enough as a starter language because eventually you will start finding use for your own command-line tools and scripts and python is awesome for building those regardless of what languages you mainly use for the products themselves.

Something that is very often overlooked is staying on top of the latest buzz in the field so perhaps even more than learning to program beforehand I'd suggest you start following related news if you don't already. In the least I personally try and check all interesting top-rated articles on Hacker News. It can be a little overwhelming at first but keep at it and very soon you'll start having a much better idea of what's going on in the software world. So that, and have fun. It's so very true that formal education doesn't really prepare you for work so it's great that you're into educating yourself in addition.
 
Joined
Jun 19, 2008
Messages
4,135
Reaction score
2,179
Mostly solid advice here so far. I'd just like to emphasize it really isn't about a single language so pick any decent one that allows you to have fun with it and create something that you can call your own. It's all about fun IMO, because if you don't have fun with your own side projects there's no chance you'll enjoy it at work either.

I can't recommend Python enough as a starter language because eventually you will start finding use for your own command-line tools and scripts and python is awesome for building those regardless of what languages you mainly use for the products themselves.

Something that is very often overlooked is staying on top of the latest buzz in the field so perhaps even more than learning to program beforehand I'd suggest you start following related news if you don't already. In the least I personally try and check all interesting top-rated articles on Hacker News. It can be a little overwhelming at first but keep at it and very soon you'll start having a much better idea of what's going on in the software world. So that, and have fun. It's so very true that formal education doesn't really prepare you for work so it's great that you're into educating yourself in addition.
Thanks, buddy. As I've gotten father along in the Python book that I have, in addition to a couple other online resources, I can totally understand how learning the fundamentals is more beneficial than focusing on learning a single language. I've seen a lot of things in Python that I've seen in a couple other languages (while just messing around). I'll check out that website and search a few others.

Thanks for the tips guys.
 
Newbie Spellweaver
Joined
Aug 9, 2014
Messages
23
Reaction score
0
For iOS Development, you'll need to learn .
 
Back
Top