Learn Programming Now: C++ & Java Basics for Computer Engineering Majors

In summary: If you're interested in learning a language that will be applicable in many different ways, Python is a good option. Scheme is a strange suggestion for a first language, but learning one can give you a better understanding of object-oriented programming principles, which can be helpful in any language.
  • #1
rty640
16
0
I'm a high school senior planning on majoring in computer engineering. In my spare time I would like to get a head start on programming. What language should I learn that would best prepare me for what I might be exposed to? My guess is C++ or Java, but I'm not sure. I'm also looking for book recommendations and a free compiler. Thank you!
 
Technology news on Phys.org
  • #2
You may want to go to several job web sites, where one would normally go to find a job, to get a feel of the market demand and salary ranges for your area you intend to eventually reside. My intention is not to encourage you in choice of programming language or operating system targets or even books. I prefer one language over alll others so you might want to figure out your preferences between all of them. If you know the school you are going to attend, you can also find out what languages they are teaching.
 
  • #3
Easy: first Scheme, then C.

Structure and Interpretation of Computer Programs
Abelson, Sussman, and Sussman
wikipedia
(this one is available for free on its MIT webpage)

http://cm.bell-labs.com/cm/cs/cbook/
Kernighan and Ritchie
wikipedia

cover.jpg
2nqv2xl.jpg


Compilers to get you started:C
Linux/UNIX: gcc (probably already installed)
Mac OS X: http://developer.apple.com/TOOLS/xcode/ (contains gcc)
Windows: http://www.microsoft.com/express/product/default.aspx

Scheme
All platforms: DrScheme

All are free.
 
Last edited by a moderator:
  • #4
Thanks for the replies.

I'm going to look into Scheme.
 
  • #5
You're going to want to be familiar with many languages. Whatever can get the job done quick and efficient. Maybe you'll need to make a quick GUI, I'd say go with VB (ugh..) It really depends on the circumstances.
 
  • #6
I'm really just looking for learning something that will help me understand concepts that I can apply elsewhere.
 
  • #7
I've never even heard of Scheme. How well will that prepare the OP for what s/he'll encounter? Are there any real-world applications that use it, or is it a learning tool?

Something that will definitely help you that is language-independent is to pick up a book on object-oriented programming principles.
You need to have a good understanding of:
inheritance
abstraction
encapsulation
polymorphism
Understanding these concepts will get you muuuuuuch farther than learning any specific language.
 
  • #8
DaveC426913 said:
Something that will definitely help you that is language-independent is to pick up a book on object-oriented programming principles.

You wouldn't happen to have any recommendations on a book would you?

Thanks.
 
  • #9
Scheme is, to be frank, a pretty strange suggestion for a first language. A few American universities used to use it as an introductory language but it has largely been dropped in favour of Python. Moreover, apart from some limited use as a scripting language for Gimp, I can't think of any examples of where Scheme has seen real-world adoption.

For what it's worth, my suggestion would be Python.
 
Last edited:
  • #10
Scheme is, to be frank, a pretty strange suggestion for a first language.

Tell that to the CS faculty at MIT, who've been teaching intro courses with it for the past 30 years. (6.001 - see the page I linked to earlier)

http://mitpress.mit.edu/sicp/adopt-list.html
 
  • #11
I've never even heard of Scheme.

It is a very small academic dialect of Lisp. It has minimal syntax, which makes it very easy to learn, without the usual complications of C-like languages.
 
  • #12
I started with python for my first month, got bored of it and moved to C++ and never looked back lol. Its all about how your introduced to C and C++. If you get an amazing book like I did than youll really enjoy it and everything seems to go well. But if your introduced to it poorly than usually it ends up becoming the devil and scaring you away.
 
  • #13
cam875 said:
I started with python for my first month, got bored of it and moved to C++ and never looked back lol. Its all about how your introduced to C and C++. If you get an amazing book like I did than youll really enjoy it and everything seems to go well. But if your introduced to it poorly than usually it ends up becoming the devil and scaring you away.

Do you remember what book? Thanks.
 
  • #14
signerror said:
Tell that to the CS faculty at MIT, who've been teaching intro courses with it for the past 30 years. (6.001 - see the page I linked to earlier)

http://mitpress.mit.edu/sicp/adopt-list.html

Which was a famously muddled and not-at-all missed course. That scheme course was dropped a number of years ago in favour of a new one based on Python.
 
  • #15
Here is a Python book:
http://folk.uio.no/hpl/INF1100/INF1100-ebook-Aug08.pdf
The source code for the examples:
http://www.ifi.uio.no/~inf1100/book-examples.zip"
Solutions to some of the exercises:
http://www.ifi.uio.no/~inf1100/live-programming/?C=M;O=D"
These are not orginized, but their names are the same as in PDF file(Ctrl-f), the top three are not from the book, but from:
http://www.ifi.uio.no/~inf1100/ODE_project.pdf"

Some more solutions:
http://www.ifi.uio.no/~inf1100/solutions_to_some_exercises_08.pdf"

The book is used in an introduction to programming for science students in Oslo, Norway
 
Last edited by a moderator:
  • #16
Learning scheme as an intro to programming isn't (IMHO) a good idea.
Yes it's an interesting language with an elegant syntax without all the real world baggage of C++ or Java - but it's like Tolkien inventing elvish to study language, great if you are a grad student in language design but we don't teach kindergarteners anglo-saxon first before English.

I would say the best languages to learn from are Python/Ruby (see https://www.physicsforums.com/showthread.php?t=284748 for links to books etc)
I would also recommend reading this book (https://www.amazon.com/dp/0735611319/?tag=pfamazon01-20) although it's written in a non-technical manner it's an excellent introduction to what happens inside a computer.
 
Last edited:
  • #17
Thank you all so much!
 

1. What is the difference between C++ and Java?

C++ and Java are both popular programming languages used in computer engineering. However, they have some key differences. C++ is a lower-level language, which means it is closer to the machine code and offers more control over hardware resources. Java, on the other hand, is a higher-level language, which means it is more abstract and offers features like automatic memory management. Additionally, Java is platform-independent, while C++ is not. This means that Java programs can run on any operating system, while C++ programs may need to be recompiled for different systems.

2. Can I learn C++ and Java at the same time?

Yes, it is possible to learn both C++ and Java simultaneously. In fact, many computer engineering courses cover both languages in their curriculum. However, it is important to focus on one language at a time and fully understand its concepts before moving on to the next one.

3. Do I need prior programming experience to learn C++ and Java?

No, you do not need prior programming experience to learn C++ and Java. However, having a basic understanding of programming concepts and logic will make the learning process easier. It is recommended to start with a beginner-friendly language like Python before diving into C++ and Java.

4. Is learning C++ and Java necessary for a computer engineering major?

Yes, learning C++ and Java is necessary for a computer engineering major. These languages are widely used in the industry and have a strong foundation in computer science concepts. They are essential for developing software, applications, and systems used in various fields, including computer engineering.

5. How long does it take to learn C++ and Java?

The time it takes to learn C++ and Java depends on the individual's learning pace and prior programming experience. However, with consistent practice and dedication, one can become proficient in the basics of these languages in a few months. It takes years of practice and experience to become an expert programmer in C++ and Java.

Similar threads

  • Programming and Computer Science
Replies
11
Views
1K
  • Programming and Computer Science
Replies
9
Views
1K
  • Programming and Computer Science
Replies
8
Views
866
  • Programming and Computer Science
Replies
15
Views
1K
  • Programming and Computer Science
Replies
2
Views
1K
  • Programming and Computer Science
Replies
6
Views
1K
  • Programming and Computer Science
Replies
2
Views
1K
  • Programming and Computer Science
Replies
5
Views
935
  • Programming and Computer Science
2
Replies
69
Views
4K
  • STEM Academic Advising
Replies
12
Views
1K
Back
Top