|
Hey guys, I've only started being interested in programming just a few months back. To be honest I had no idea what programming was. I changed my major because I couldn't stand my previous major, and I've always wanted to try computer science back in high school.
But I have a problem: I'm halfway through my intro to programming class and I still have no idea what it exactly is! We're learning java and made these really simple programs using API's, methods, recursions, etc, but I WANT TO DO SO MUCH MORE!!!XD
Our professor is from MIT, and I'm pretty sure we're on the right track (I'm doing fairly well in class also), but I want to see the bigger picture. I want to learn as much as possible, but I have no idea where to start. Sometimes I feel that I could be something more worthwhile than attending class and doing class work.
Can anyone offer me an advice on what thought they should have done or have done in their college career starting all the way from their freshman year? Maybe getting involved in an online community similar to teamliquid but for programming?
Thanks in advance.
![0 stars based on 0 ratings](/images/blogs/graystarSmall.gif) ![0 stars based on 0 ratings](/images/blogs/graystarSmall.gif) ![0 stars based on 0 ratings](/images/blogs/graystarSmall.gif) ![0 stars based on 0 ratings](/images/blogs/graystarSmall.gif)
|
Stop using XD for start.
Next up is, do more with programming? Try making a simple game, or a program which does something you want it to do (example: change your wallpaper every xx seconds). You could also ask your professor for more interesting topics which you can do in your private time.
|
i love helping aspiring/passionate programmers. i've dedicated my life to the art, if you have any questions or want any advice/ideas on fun projects to work on just PM me! always have a few things in the works
|
Programming is really a lot about problem solving in which you just have to program a lot to gain experience so you won't make the same mistake twice (exactly like Starcraft). College is there to give you the concepts how to handle these problems (like most pro's in sc2 are saying just to ladder a lot to gain experience and mechanics). It will give you a mind set which you will benefit in combination of programming which you'll have to do yourself outside school.
At least this was for me at my college right now. Study materials differ each country/college though so you might've already been doing what I've said :p
The books listed in big programming thread are very good and I've read some of them in my spare time. I would suggest you do the same once you have decent grasp of OOP. Data Structures & Algorithms, Design Patterns and Clean Code - A Handbook of Agile Software Craftsmanship are books I have learned a lot from after I got a basic understanding of OOP.
|
Like shannn said--you can't just start off writing games. You could attempt, but without the fundamentals of computer science, it's going to be an unorganized mess, and will be horribly inefficient.
College CS courses are to understand the concepts. Data Structures, Algorithms, how computers work, the pros/cons of different programming languages, theory behind design aspects, networking, etc. Once you have these concepts down, each language is just a different interpretation, for the most part, of the same basic principles, with various strengths and weaknesses.
|
Oh, I have great advice here. Take what you know about coding. Think of something that you JUST BARELY don't know exactly how to do. Try to code it. You'll run into the problem of not knowing something but being very close to knowing it, and then through your own problem solving skills or even just by looking something up you'll work through that issue and, bam, you've learned and also produced an interesting piece of code.
Rinse and repeat until you're working for IBM.
g.g.
|
There is a programming thread on TL. Also, life is wonderful and beautiful and you should enjoy every moment of it.
|
A) Don't get too java-ised. Java, while a versatile and very popular language, that you more or less need if you want to get a job, is terrible for teaching. Most issues can be solved by just finding a class someone else made, and a lot of things (memory cleaning and such) are totally automated
B) Join your school's CS club, fun fun fun stuff. Nerdy as all hell (at least mine is), but if you're majoring cs, there's got to be a bit of a nerd in you somewhere
C) If you really have the desire, learn C/UNIX. They're the core of most programming, and teach you really really developed programming skills. Your school will definitly have classes.
D) On the other end of the spectrum, read about ruby, and racket/scheme. Really automated, but functional programming is a cool concept.
www.projecteuler.net
- Huge deposit of challenging programming questions
|
Think of a small project that teaches you stuff. I, for example, made a little program which lets you set a timer to shutdown your computer to get acquainted with GUI programming in Java. Or maybe make something that accesses a database. Or make a small Android app. You don't learn such stuff in school (at least I didn't), you have to learn how to teach yourself things and get a little experience.
|
On February 14 2012 02:26 billy5000 wrote: Hey guys, I've only started being interested in programming just a few months back. To be honest I had no idea what programming was. I changed my major because I couldn't stand my previous major, and I've always wanted to try computer science back in high school.
But I have a problem: I'm halfway through my intro to programming class and I still have no idea what it exactly is! We're learning java and made these really simple programs using API's, methods, recursions, etc, but I WANT TO DO SO MUCH MORE!!!XD
Our professor is from MIT, and I'm pretty sure we're on the right track (I'm doing fairly well in class also), but I want to see the bigger picture. I want to learn as much as possible, but I have no idea where to start. Sometimes I feel that I could be something more worthwhile than attending class and doing class work.
Can anyone offer me an advice on what thought they should have done or have done in their college career starting all the way from their freshman year? Maybe getting involved in an online community similar to teamliquid but for programming?
Thanks in advance. THERE IS SO MUCH STUFF to learn, just read away, read blogs, examine code snippets, participate in Open Source projects, make a StackOverflow/ProgrammersExchange account. It doesn't have to necessarily be about java, there is so much things to learn in every aspect. I envy you, you are still in the 'i want to learn phase'. I am now in the 'just let me sleep phase' and can't seem to get away out of it.
|
There are too major paths you can take: computer science and software engineering. The former will likely involve a lot of mathematical theory alongside your programming, the latter primarily is concerned with methodology and production. Getting deep into CS will probably take you to grad school. Getting deep into software will land you a job in industry.
Reading through the Internet will give an understanding of where software is today. You must read through recent papers (ACM, IEEE, SIG) to get an understanding of where CS is today.
There are many different disciplines either way, so you will have to look around and decide what looks interesting to you. Try not to get misguided into business-oriented junk -- stick to proven technologies on proven platforms; don't chase the next big thing.
|
And even if you're frustrated in class, either work on a project outside of class (open source, or better: ask your instructor if he/she has room in his/her research group for an undergrad) or just pay attention and bide your time. The pedantic lessons are demonstrative of the kind of problems you encounter when writing computer programs, so get it right the first time.
You have a lot of energy, but you don't want to burn it all on something that you won't be satisfied with a year or two later. So until you know what the scene is like, you have to bide your time and build up a skillset.
What specifically are you interested in? I can probably point you to a research group, community, or open source project that is working on it.
|
In general, walking up to a PI and saying, "Hi. I'm a bright-eyed undergraduate with a chip on my shoulder. I want to work for you in whatever capacity I can learn on the job. I require little-to-no pay, just the opportunity to slay dragons." never fails. Most of the time, people are just happy to be a mentor to someone, and if you do anything big they'll get acknowledgement. Also, if you stick with the group (nobody gets kicked out), you can get a Masters adviser or recommendation elsewhere.
|
|
|
|