Moving Onward from Introductory Java

In summary: Including all the architecture stuff)In summary, to prepare for a Computer Science degree and ultimately, a career in software engineering, it is recommended to learn C, especially pointers and assembler. It is also beneficial to become proficient in a command line interface, such as bash on Linux or Mac OS, and to have a strong understanding of algorithms and logic. Learning a Unix-like or Linux terminal can also be helpful. Additionally, getting hands-on experience and experimenting with different operating systems, such as Linux, can greatly enhance one's understanding of software architecture.
  • #1
mowgli86
6
0
After learning the basics of Java, what should I be learning about to help me prepare for the rest of a Comp Sci degree?

I am running Mac OS X, so I was thinking of learning my way around the terminal/bash, or something else Unix-based. My ultimate goal is software engineering, so I know that I will need to have an understanding of operating systems and the deep recesses of the software architecture. Also, I'd like to mess around with Linux (I think I've been saying that since the 90's), but would it be pointless to run Linux when I already have a Unix-based OS?

I understand that any answer will be subjective, but I would appreciate any advice.
 
Technology news on Phys.org
  • #2
Learn C, especially pointers, and maybe some assembler.

Learn a command line interface, bash on linux, unix, MacOs , or even cygwin on widows.

Learn some formal algorithms and logic.

Then depending on what strikes your fancy, databases, web servers, etc...
 
  • #3
you should learn the unix like or maybe linux terminal , try ubuntu hehe
btw for fast progress in java visit this site :

http://download.oracle.com/javase/6/docs/"
 
Last edited by a moderator:
  • #4
I'm in a similar position, maybe a year or so ahead of you, studying Comp Sci and learning Java, Linux, etc

The MacOS shell is similar to the shell(s) in Linux, but there's big and little differences all over the place. Learning one will help learn the other.

I run Windows but I do all my school work, and some of my playing, in Linux. I use Virtualbox to run Linux Mint 10 (based on Ubuntu) in a virtual machine. This is convenient as I often need to switch between OS's.

Get your hands dirty! :)

The more you do, the more you know. Linux is great fun and very powerful, you'll learn a lot about operating systems if you dig around, and there's a motherload of free software and libraries out there for you to use.

I've just completed my first proper course on Algorithms and Data Structures, core concepts for Computer Science / Software Engineering, and found it fun and very difficult! https://www.amazon.com/dp/0262033844/?tag=pfamazon01-20 which I found to be fantastic and includes many exercises.
 
Last edited by a moderator:
  • #5
C/C++, Java(Core & Advanced) and Assembler
 

Related to Moving Onward from Introductory Java

1. What are the most important concepts to understand when moving on from introductory Java?

The most important concepts to understand when moving on from introductory Java are object-oriented programming principles, data structures and algorithms, and design patterns. Object-oriented programming principles include encapsulation, inheritance, and polymorphism, which are essential for building complex and maintainable software. Data structures and algorithms are fundamental for efficient problem-solving and optimizing code performance. Design patterns provide reusable solutions to common programming problems and help improve code readability and maintainability.

2. How can I continue to improve my Java skills after completing an introductory course?

There are several ways to continue improving your Java skills after completing an introductory course. One way is to practice coding regularly, either by working on personal projects or participating in online coding challenges. Another option is to read books or online resources about advanced Java topics such as multithreading, networking, and databases. Additionally, joining online communities or attending workshops and conferences can also help you stay updated on the latest developments in the Java world.

3. What are some common mistakes to avoid when transitioning from introductory Java to more advanced concepts?

One common mistake to avoid is relying too heavily on IDEs and not understanding the underlying code. While IDEs can be helpful, it is essential to have a deep understanding of the code you are writing. Another mistake is not paying enough attention to coding standards and best practices, which can lead to code that is difficult to maintain or understand. It is also crucial to avoid getting stuck on one particular concept and not exploring other areas of Java programming.

4. How do I decide which advanced Java concepts to focus on?

The best way to decide which advanced Java concepts to focus on is to identify your goals and interests. If you are interested in web development, then learning about Java frameworks like Spring or Hibernate would be beneficial. If you want to pursue a career in data science, then focusing on Java libraries for data analysis and machine learning would be more relevant. It is also helpful to research the current job market and see what skills are in demand.

5. How can I apply my Java skills to other programming languages?

Java is an object-oriented programming language, which means that the core principles and concepts can be applied to other languages. Learning Java can help you understand the fundamentals of programming, such as variables, control structures, and data types, which are transferrable to other languages. Additionally, many programming languages have similar syntax, so once you have a good grasp of Java, it will be easier to pick up other languages.

Similar threads

  • Programming and Computer Science
Replies
1
Views
600
Replies
3
Views
370
  • Programming and Computer Science
Replies
8
Views
1K
  • Programming and Computer Science
Replies
3
Views
3K
  • Programming and Computer Science
Replies
33
Views
8K
Replies
35
Views
6K
  • Electrical Engineering
Replies
10
Views
2K
  • Programming and Computer Science
Replies
15
Views
5K
Replies
60
Views
9K
Back
Top