I’m currently a high school senior planning on majoring in Computer Science in college. I am wondering if it’s important to have some knowledge of programming before entering college? What’s the easiest programming language the start of with? And what’s the most effective way to self study programming? Thanks!
It absolutely isn’t required or even needed. Often the biggest benefit of programming before college is confirming your interest, not the skills you will develop then.
I personally think that the difficulty of effectively learning computer science on your own is often understated - there are plenty of ways to develop bad habits and practices teaching yourself, so I usually err toward the side of caution.
I think a very friendly introduction language is Python, and you can go through online with codeacademy.
https://www.codecademy.com/learn/python
I would recommend just going through the courses on there to get a general feel for programming. From there you can confirm your interest and know some of the basics before you get to college, and can learn then from the college curriculum.
The point of learning CS in college is…learning it
But if you want to give yourself a preview, go ahead. Like the person above me said, Python on codeacademy is a good place to start. IMO Java is better. Idk, people who program all disagree on this one.
For ME, my first programming language was TI-basic for my graphing calculator, which is inherently simpler and easier to learn than those for computers. Also more hands-on in that I was making actual programs and using them; seeing what I could do with code was really exciting and definitely was what got me interested. Tutorials are only so fun. SO, that’s what I might recommend, but everyone is different.
One of the first programming classes you take in that major is an intro to programming class, so you don’t need prior knowledge in programming to major in CS. I think Java is the popular programming language that they’re teaching as the intro programming class. I also learned some Python. Python is wayyyy simpler than Java. The basic concepts are the same but how you have to type them are different. For example to print the word “apple” you have to say print(“apple”) in Python and System.out.print(“apple”); in Java.
@catsss Not exactly true. Deciding to major in CS without programming knowledge is like deciding to major in math without ever having done math.
Are you accepted yet/where? And for CS (or with that on your app,) with no experience?
Re #4
Colleges do offer intro CS courses for those with no experience. Students could decide whether to major in CS after taking such a course.
Most colleges have introductory Computer Science classes that do not require or even expect students to have previous programming experience before taking them. However, it would definitely be helpful to have prior programming experience before taking the classes, since it would help to confirm your interest in the subject and give you a head start. Most people usually experience a steep learning curve when learning programming so the more experience you have before taking the classes the better.
The easiest programming language to start with would probably be Python, since it has a simple and concise syntax that reads like English. Learning Python would allow you to focus less on syntactical details such as figuring out where curly braces go and including semicolons, and more on the general concepts of programming such as how conditional statements (if/elif/else), loops, functions, classes, objects, etc. work and when to use them. The general concepts of programming are transferrable across many programming languages and learning them well will help you adapt to different languages quicker and easier.
There are many different free online resources and books that you can use to self-study programming, but it is very important that you always keep in mind the context of your learning. Always ask yourself: Why are you learning certain technologies? What problems are you trying to solve? Programming is just a tool to help you solve problems, it's not an end in itself. I recommend figuring out a problem you want to solve, identifying which technologies you need to solve that problem, learning the technologies, and then working on hands-on projects to achieve your goal. This is a very fun process that helps keep you motivated and contextualize your learning, which leads to deeper understanding.