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

In summary, the individual is a high school student looking to self-study programming. They have completed a course on Introduction to Computer Science and Programming Using Python on edX and are looking for the next steps. The conversation suggests learning Java as it is a widely used language and has resources such as EJ Media's channel, Programmr, and Codecademy. It is also important to apply the concepts being learned and create projects. The conversation also discusses the importance of knowing different programming paradigms and suggests topics such as data structures and algorithms. These can be learned through resources like programming competitions or MIT's course on Introduction to Algorithms. Alternatively, the individual can also learn through their own programming projects. It is mentioned that the path for learning
  • #1
Mastermind01
203
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
  • #2
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!
 
  • #3
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.
 

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

1. What are the benefits of self-studying programming?

Self-studying programming allows you to learn at your own pace and focus on topics that interest you the most. It also helps develop problem-solving and critical thinking skills, which are essential for a career in programming. Additionally, self-studying can be more cost-effective than traditional education options.

2. What resources are available for self-studying programming?

There are many online resources available for self-studying programming, such as interactive coding websites, video tutorials, online courses, and coding bootcamps. It is also helpful to join online coding communities and forums to connect with other learners and ask for help when needed.

3. How long does it take to master programming through self-study?

The time it takes to master programming through self-study varies depending on the individual's dedication, learning style, and prior knowledge. It can take anywhere from a few months to a few years to become proficient in a programming language.

4. Is self-studying programming enough to get a job in the tech industry?

While self-studying programming can provide you with the necessary skills and knowledge, it may not be enough to secure a job in the tech industry. Most employers also look for practical experience and a strong portfolio of projects. Consider participating in hackathons, contributing to open-source projects, or interning to gain hands-on experience.

5. How can I stay motivated while self-studying programming?

Staying motivated while self-studying programming can be challenging, but setting realistic goals, taking breaks, and celebrating small achievements can help. It is also helpful to have a study schedule and to connect with other learners for support and motivation.

Similar threads

  • STEM Academic Advising
Replies
3
Views
839
  • STEM Academic Advising
Replies
12
Views
1K
  • STEM Academic Advising
Replies
1
Views
498
  • STEM Academic Advising
Replies
6
Views
1K
  • STEM Academic Advising
Replies
10
Views
2K
  • STEM Academic Advising
Replies
7
Views
1K
  • STEM Academic Advising
Replies
5
Views
867
  • STEM Academic Advising
Replies
7
Views
2K
  • STEM Academic Advising
Replies
22
Views
4K
  • STEM Academic Advising
Replies
7
Views
2K
Back
Top