As you think about what comes after high school, I wanted to share that I entered college as a computer science major without having done much coding (I read and played around with sample code). The first two years really opened my eyes about computer science: it's about understanding the technologies for building and making things in the digital world. Coding is a very important skill in the digital world, but its tool, and not the end product.
As you explore coding, I'd recommend you also focus on what it is you like to build, eg. visual web pages that bring pages and images from the physical world to digital, or complex search algorithms for making sense of the mountain of chaotic information, or test frameworks that keep the digital world from falling over. You'll learn new programming languages over time, but the fundamentals of how you break apart a problem and piece back together the solution through logic and instructions to make something novel will remain unchanged.
and start with some basic courses like
1. Data structure
2. Basic algorithms
Ratan recommends the following next steps:
Consider your academic interests, personal strengths, and long-term career goals when deciding whether to pursue a computer programming or general computer science degree Ziah. A computer programming concentration may be the best option for students pursuing programmer jobs after graduation. Employers offering computer programming positions typically prefer applicants with in-depth programming knowledge. Computer programming majors master several programming languages and can hit the ground running at new programming jobs. Computer programming degrees prepare graduates specifically for jobs writing code. Students considering other tech careers may benefit from a general computer science curriculum.
A general computer science program provides a broad overview of computing theory and develops a variety of computer science and tech skills. Students might earn a general computer science degree instead of a computer programming degree if they want a more versatile education that explores many tech topics, including software development and network architecture. Computer programming degrees prepare graduates specifically for jobs writing code. Students considering other tech careers may benefit from a general computer science curriculum. Many of these programs also offer concentrations or courses in computer programming.
Hope this is helpful Ziah
For me, learning code means practice, practice and ... yes you guessed it, practice. There are two parts when it comes to writing code: the algorithm and the language. Both comes with theory and practice. Like Leo, for me, learning went through school classes, workshop and personal project. I took something I needed and start coding.
Couple example of projects:
- dice roller: I used to play role playing games a lot and I was annoyed when I had to roll 20 dice. So here I started with a small console based C code to do that. Then extended it to some UI.
- still in Role Playing Game, we used to play one where we needed to handle specific actions and thresholds that would go away after a while. I wrote a program where I entered the character skills and levels, request the action and the program was telling me what was happening.
- What movie to watch: this introduced a database with the idea of the program selecting movie titles we haven't seen for a while based on criteria like type of movie, duration ...
Then you learn from there. Like any other job I believe, coding comes with experience.
I honestly don't remember what was my first coding project, but I started coding when I was about 11 years old. However, I do remember one particular project that was very interesting to me: I wanted to make a ball bounce around the screen. That's it. In order to achieve that, I had to learn about loops, data structures (to store the data that I would need to do the animation), and Math (specifically, Trigonometry, Algebra and later Vector Calculus). Because I had a clear goal in my mind, Math was no longer a dull subject at school. I didn't have to ask my teacher "Why is it important to learn Math? When am I ever going to use all this stuff?" After that project was done, I just kept coding more and more projects.
So, I think the first thing you need to do is find a meaningful project (it doesn't have to be something big, just something that you find fun). Then you can go and look for tutorials on how to implement and code the stuff that you'll need for that project. Ratan already provided very good resources, so I don't think it's necessary to repeat that information.
You can also checkout Udemy, Coursera, Linkedin Learn, and many others at no cost or with little cost, to learn topics like Programming in Python, or building your own website from scratch in 10 hours on avg, usually done over a course of a week or 2 at your own pace. You have to be very self motivated to learn on your own, and practice practice practice.
There is no shortage of compSci tutorials online. You can learn to code if you put your heart into it!
I assume you would like to pursue a career in Computer Science or Computer Engineering. My advice would be not to look for any shortcuts and to get the best possible college education. This will not only provide you with the coding skills but also will allow you to build a solid foundation and scientific understanding of Computer Science.
Learning code is challenging and takes time to learn all the tips and trick that are out there. Depending on the language there are certain shortcuts that can drastically reduce the amount it takes for you to write your program. When I was starting to learn code I was using solver programs like MatLab to help solve algebraic functions that would be difficult to solve without. MatLab is a great starting system becuase you learn how to create basic code and overtime you will find ways to make your code shorter and flow better. I know when I started my code was very direct, do this, solve that etc., and as I spent more time working the software I became more comfortable setting myself up to have a long form code that achieved multiple steps throughout the code. Another good learning software is Arduino. When I used Arduino it was primary used for controlling small motors and sensors for a school project. Arduino is great because you are able to see the result of your code by watching something move, which is very cool. What's great about systems like python, matlab and arduino is that there are a ton of online forums that you can use to talk with people through issues you may be having.
Hopefully this helps!
- Summer bootcamp: Or bootcamp, some introduction to coding.
- LinkedIn Learning: A lot of good content and very well done, entertaining and with good images to convey the message. I think the subscription is $29/month but well worth it. There might be some free content too.
- YouTube: Needs a little bit more discipline but you can definitely find a lot of good tips and tricks for coding on YouTube and follow the YouTubers.
- Meetup: You have coding groups that meetup virtually or in person and even better specialized in the language you want to deepen (Python, Java, etc.)
- Local groups and clubs: Always good to know but there are usually local schools that have groups open as a hobby. Coding is a huge trend right now and googling it in your area should give you some good results.
Hope this helps,