Reply
Thread Tools
Programming None
Old 02-02-2011, 10:21 PM   #1
jamessmith
Banned
 
MBTI: INTJ
Join Date: Jan 2011
Posts: 43
 
So I am thinking of possibily taking programming/computer science at univesity or community college, or combination of both and I just had a question.

Are all of the programming terms explained in these courses so that the students understand exactly what they mean? I'm talking terms like "functions", "keywords", and "variables". I was going through the beginning of a C++ tutorial online and while it doesn't seem overly complicated, I find that it gets a bit confusing when it comes to things like the different kinds of variables and exactly what they are doing or how you are supposed to put them in the code. I talking about the tutorial itself, which is using these terms while it is trying to explain a concept to the reader and I find that it is difficult because I don't necessarily know exactly what the terms mean or understand the concept behind them completely.

And I was just going through a C++ tutorial for beginners and only spent about 5-10 minutes doing it, so it's not like I expect to understand it perfectly; I just wanted to ask if in university or other programming school courses, these things are made understood to the students before they go ahead and starting teaching the students how to write program?
jamessmith is offline
Reply With Quote

Old 02-02-2011, 11:29 PM   #2
slasta
New Member [01%]
 
MBTI: InTJ
Join Date: Feb 2011
Posts: 2
 
Most intro courses will start with a simple "hello world" program then expand from there: introducing variables, functions, scope, objects, primitives etc.

So one could go into an intro course knowing very little to nothing about coding and learn effectively, but alot depends on the professor. My professor couldn't communicate the concepts well so I learned the most when doing the assigned projects or other side projects rather than in the classroom.

Depending on the University, your intro class may use Java or C/C++.
slasta is offline
Reply With Quote
Old 02-03-2011, 02:45 AM   #3
Atmey
Member [06%]
MBTI: INTj
Join Date: Dec 2010
Posts: 265
 
In my experience we started on a course with nothing more than
To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.
. I helped to understand how code works, then we started on writing simple programs in Java slowly to object oriented programing.

Research each type of variable individually or you can use the
To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.


I also recommend
To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.
, but it is mostly for web based programing.
Atmey is offline
Reply With Quote
Old 02-03-2011, 04:20 AM   #4
HackerX
Core Member [166%]
*the huggleator*
MBTI: INTP
Join Date: Sep 2007
Posts: 6,667
 
I honestly don't know any uni student who successfully learnt programming from scratch at uni. Will you learn those sorts of things? yeah probably. But you'll find it difficult.
HackerX is offline
Reply With Quote
Old 02-03-2011, 08:12 PM   #5
Opressoliber
Member [09%]
 
MBTI: INTx
Join Date: Jan 2011
Posts: 369
 
I am doing a minor in computer science at my uni. They start learning Java from scratch so no,I don't think you will be all that disadvantaged.
Opressoliber is offline
Reply With Quote
Old 02-03-2011, 10:21 PM   #6
sentientbeing
Member [12%]
MBTI: INFJ
Join Date: Sep 2010
Posts: 482
 
You can't learn programming in 5-10 minutes. It takes a while to really understand when to use which data types and the differences between them. At my university, we started with C programming. It is difficult but it introduces you to data type storage and memory management, which gave me a deep understanding of how programs work.

If you want to learn C++, get
To view links or images in this forum your post count must be 2 or greater. You currently have 0 posts.
. It was written by the creator of C++ and it will give you insights into the features of C++ and some elements of software design.

To be honest, I think teaching yourself is the best method of learning programming. Intro classes can be lousy because they usually exclude useful CS concepts for the sake of Non-CS students who take the class to fulfil a requirement.
sentientbeing is offline
Reply With Quote
Old 02-03-2011, 10:38 PM   #7
ScottH
Member [16%]
 
MBTI: INTJ
Join Date: Nov 2007
Posts: 672
 
Yes, any serious CS program will teach you all those things.

Understanding programming thoroughly is best done in a layered way. Most programs start with basic concepts and structure, then teach the simplest algorithms, and then take a step back and teach exactly what is going on inside the machine when it runs these programs.

My personal opinions on the topic are:
* Although Java is a fine language for some things, a CS program that focuses too much on it is bad because it will be too abstract.
* Be sure there is C or C++
* Whether it is part of the program or not, learn Assembly, even if it is just inline assembly within your C/C++ compiler. By learning this, you will gain deep understanding of what your C/C++ programs do.
* Read Kernighan and Ritchie's "The C Programming Language," often referred to as "K&R". Although Stroustrup's book (cited above) is excellent, K&R is simply the best bare-bones C book written, and every word is equally valid for C++ programmers. I would read it at least 3 times.

Oh, and welcome to the club. I've been a software engineer all my life, I've loved every minute of it, and hope to continue to do so for many years to come.
ScottH is offline
Reply With Quote
Old 02-04-2011, 01:02 AM   #8
JEP
Member [03%]
MBTI: INTJ
Join Date: Jul 2010
Posts: 147
 
From my experience, the biggest hurdle in learning your first programming language is changing the way you think.

You need to start thinking in structures, such as if-then statements, for-loops, etc.

A good exercise is to write out a flow chart to evaluating some simple math formulas like the quadratic equations - a,b,and c are the inputs; the output are the roots; etc.

You know how you'd evaluate it on paper, but writing a program to do it forces you to break down the process into very fundamental steps and to account for every scenario, i.e. you don't want your program to crash if the roots are imaginary or the user inputs a letter instead of a number for a,b, or c. This is called "robust" programming.
JEP is offline
Reply With Quote
Old 02-06-2011, 09:22 PM   #9
DeaconSyre
Member [28%]
MBTI: INFP
Join Date: Jan 2010
Posts: 1,123
 
In my experience it's really going to vary from class to class, teacher to teacher, student to student, and school to school.

It is possible to learn programming in 4 years (assuming you're headed for a standard bachelors) but full mastery (however you feel like defining it) will probably take a lot longer and a lot of effort.

Also: make sure you get a software engineering internship while you're still at school, or at the very least take on some ambitious projects. There's a dramatic difference between doing programming assignments for school and spending 40hrs a week on something.

To put internships in perspective: at my school you actually only spend about 40 hrs in class per course. That's 1 week of real work. Even after you add in time expected to be spent on homework there's still a vast difference in the time you'll spend programming for school and for work. And in programming experience is crucial.
DeaconSyre is online
Reply With Quote
Old 02-06-2011, 09:42 PM   #10
Latro
Veteran Member [85%]
 
MBTI: INTP
Join Date: Apr 2009
Posts: 3,410
 
Even though you've been banned already:

C++ is pretty involved for a starting language, I think; there's a lot of crap in the way of the stuff that's actually going on in a language like that. Python makes for a very nice starting language because relatively basic tasks don't have very much extra crap in the way. Various other choices work well too, but Python is the one that I started with and is also probably the one that I am most comfortable with. There are certain things that you just can't get away from, though, like functions, which are a basic concept that you have to grasp pretty much before you can really even start doing things.

My entirely biased opinion is to go like this:
High level imperative->low level (imperative; low level functional doesn't really make sense)->functional-> <project-dependent>

where high level imperative is languages like Python and Ruby and to a much lesser extent Java; low level imperative is mostly C, really; and functional is things like Haskell and Lisp.
Latro is offline
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 04:34 AM.


Powered by vBulletin®
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Myers-Briggs Type Indicator, Myers-Briggs, and MBTI are trademarks or registered trademarks of the
Myers-Briggs Type Indicator Trust in the United States and other countries.