What should I do next after completing an introductory programming course?

Click For Summary
After completing an introductory programming course, it's advisable to focus on learning Java, as it builds on Python fundamentals and introduces key computer science concepts like object-oriented programming (OOP). Applying learned concepts through practical projects, such as creating games or applications, is crucial for solidifying understanding. Exploring data structures and algorithms is recommended for those interested in traditional programming or computer science, with resources available for high school programming competitions. However, if the goal is web development or app creation, a more hands-on approach to coding may be more beneficial. Ultimately, the next steps should align with personal interests and career aspirations in programming.
Mastermind01
Messages
203
Reaction score
51
Hello,
So I'm in high school and I wanted to self-study programming. In summer I completed the course Introduction to Computer Science and Programming Using Python on edX . I really liked it. I was wondering what I should do next and from where? Should I learn a different language (C , C++ and from where?) or learn more about CS (algroithms , OOP etc.)

Thanks.
 
Physics news on Phys.org
It depends on what kind of programming you want to do exactly. If for now you're just exposing yourself to programming, I'd recommend Java. Java is a very widely used programming language, and it's not too hard to master the fundamentals of Java if you know Python. Java will also allow you to learn those important CS concepts(specifically OOP). EJ Media's channel has some great tutorials on Java-

https://www.youtube.com/playlist?list=PLr6-GrHUlVf9SIx5cDhoEMknias5Xyv67

Also, it's very important to apply the concepts you're learning. When I tried to learn programming on my own, I didn't get very far because I couldn't apply them to learn how they actually worked. I'd highly recommend making an account on Programmr, it's a great way to program exercises made by other people to apply all those concepts you've learned and actually make something. They have exercises for Java as well as many other languages-

http://www.programmr.com/

Also, this is an old resource, but it still applies to the fundamentals of Java. It's got some great quizzes, reviews and exercises with each chapter-

http://www.oopweb.com/Java/Documents/JavaNotes/VolumeFrames.html

Codecademy is also a very good resource for learning, they have a Java class now and classes on other languages(like Python, HTML/CSS and SQL)-

https://www.codecademy.com/

Again, it can depend on what exactly you want to learn programming for. If you're interested in the software development field and becoming a programmer, then all the resources listed above are great. But of course, there are different reasons to learn programming. For example, the programming a scientist may use could be very different from the programming a software engineer would use. Scientists today now need to know basic computer concepts and programming more than ever to make complex models so they can analyze processes. This type of programming generally involves a procedural programming language instead of an object-oriented one, which the software engineer would generally prefer OOP because it's much more efficient in making applications.

For now, I'd stick with learning Java. It's a good language to learn and fairly easy to learn if you have a foundation in a language such as Python. Keep applying yourself and make some applications by yourself! Make a game, or a calculator or a website even! Good luck!
 
Really depends on what you want to do with that knowledge. If you're interested in pursuing a degree in computer science or if there's something specific you're interested in (like web development is quite different from a cs degree). I'm of the opinion that learning more languages isn't something you should be aiming at specifically unless you need that specific language for something you're interested in. Once you already know one language it's very easy to pick up another when needed really fast, there's however some point to being comfortable with different programming paradigms (OOP, functional, logic etc.) but that usually comes after you already know the basics of data structures and algorithms.

Assuming you're interested in computer science and "traditional programming" you probably should get comfortable with OOP at least to level where you know what an object and inheritance is after that you could look at data structures and algorithms.
One idea here would be to check out programming competitions aimed at high school students, usually you can find material relating to that teaching you algorithms and data structures.

Some topics to start with:
Data structures:
Linked lists, Trees, hash tables
Algorithms:
Search algorithms: BFS, DFS, Dijkstra's algorithm, A*,minimax (look up dynamic programming)
Sorting: bubble sort, insertion sort, quicksort, hashsort, mergesort (what are the advantages of each, for which data structures are they're useful?)

Here's an university course covering this and more http://ocw.mit.edu/courses/electric...ntroduction-to-algorithms-fall-2011/index.htm however I suspect it's a bit to advanced for you right now but essentially you want the same topics but perhaps with less of the mathematics.

Another idea would be to simply do your own programming project and learn whatever you need as you go, that way you learn things that you find interesting and are directly useful for you.

Again all this is assuming you're interested in cs, math or programming competions. If you want to do web development or creating apps you won't need (all of) this and you probably better of just starting coding and learning as you go.
 
TL;DR: Jackson or Zangwill for Electrodynamics? Hi, I want to learn ultrafast optics and I am interested in condensed matter physics, ie using ultrafast optics in condensed matter systems. However, before I get onto ultrafast optics I need to improve my electrodynamics knowledge. Should I study Jackson or Zangwill for Electrodynamics? My level at the moment is Griffiths. Given my interest in ultrafast optics in condensed matter, I am not sure which book is better suited for me. If...

Similar threads

  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 71 ·
3
Replies
71
Views
2K
  • · Replies 7 ·
Replies
7
Views
802
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 22 ·
Replies
22
Views
7K