Hello, my Socratica Friends!
We’re here to help you be a Great Student.
Today we’re answering a request from a viewer.
Yes, we listen to your requests.
Our viewer asks “Can you give me some advice on how to study Computer Science?
I want to be a Programmer, but I don’t have any idea where to start.”
We can help.
And I say “we,” because today we’ll be talking to my friend Ulka, who teaches
programming here at Socratica.
Ulka is a web developer, and studied Computer Science in college.
But is that the only way to become a programmer?
Absolutely not.
You do not HAVE to study computer science in college in order to be a programmer.
In fact, it is very difficult for universities to keep up with the rapidly changing technology.
If you took a class in programming while in college, by the time you graduate and start
working at a job, that language may be all but defunct.
So why do people study Computer Science in college at all?
What do you get out of a CS degree?
It’s important to remember that Computer Science and Software Engineering are two different
things.
A CS degree will help you learn to think like a programmer.
It changes you.
Molds you...
into someone who can code for a lifetime.
Think of your CS degree as a kind of meta-cognition.
It may not teach you the specifics of coding, but it will teach you what coding IS.
The important part of studying CS is to understand the theory.
While the specifics of software engineering may change, the underlying theory of computer
science remains constant.
Can you tell us what would you learn in a CS degree?
The curriculum varies, depending on the university.
But you can likely expect to learn about Data Structures and Algorithms, Operating Systems,
Networking, Cryptography and Search, and about Programming Languages in general.
You may also learn about such topics as Artificial Intelligence and Machine Learning.
Graphics.
And Math.
Don’t forget the importance of Mathematics.
CS problems are essentially Math problems.
AI requires Probability and Statistics.
Graphics and Animation use Linear Algebra.
You want to study Cryptography?
That means you’ll also study Number Theory and Modular Arithmetic.
But what if our viewer can’t go to school full time to get a CS degree?
Ideally, you should pursue your skills both academically, in courses, and non-academically,
through self-study.
There are many online courses to address the academic side, if you can’t enroll full-time
at a university.
We’ll include links to some free online courses from universities like Harvard and
MIT in the description below.
Now, what about the non-academic road to becoming a programmer?
Can you tell us more about that?
The best way to learn to code...is to code.
I recommend you start with something very simple.
There are coding tutorials that use visual interfaces.
These help you get a quick win.
By that, I mean you will quickly learn that you CAN code...as long as you are logical.
Well, our viewers are certainly logical.
What next?
For beginners, it is important to be project driven.
Give yourself increasingly difficult tasks, and solve them.
Look for “hour of code” challenges.
Meetups.
Hackathons.
Read forums that discuss coding.
This is a good way to meet other people who are learning how to program and who can review
your code.
Speaking of reviewing code…
Yes?
Reading someone else’s code is an excellent way to learn programming.
Find a simple bit of code, preferably one with documentation, and try to break it.
You will find, very quickly, what mistakes look like in coding.
Alternatively, take other people’s code and try to USE it.
There are many open source projects that require work to learn how to use them.
Where does someone go to find pieces of code to try to understand?
GitHub is a well-known code hoster.
You will find many open source projects there.
This is also a good place for you to build your own portfolio.
Then, share it with others and learn from their comments.
How do you know what language to start with?
You can start programming with something simple, like JavaScript.
I can also recommend an EXCELLENT Python course.
Wink.
But you should pick one language?
I actually recommend you learn more than one language.
This will let you see what is common in programming, and what is specific to one particular language.
Each programming language has its own strengths and weaknesses.
What about the people who have learned a little, but they really want to take it to the next
level?
You could sign up for an Immersive Bootcamp.
Those usually last about 6 months, and by the time you get out of it, you’ve spent
a few thousand dollars, and you’ll have a certificate and a lot of experience coding.
{you’re thinking of a but...here}
I sense a “but” coming here…
BUT...it might make more sense to just get a job.
Like on-the-job training?
Exactly.
Create a profile for yourself on a job site, and be honest about your experience level.
Take on projects for friends.
Learn to code something useful, like a game you want to play.
You’ll learn more this way than almost any other.
It’s a test by fire.
There you have it, my Socratica Friends.
You can go to school for Computer Science, but ultimately you learn how to be a programmer
by BEING a programmer.
Let us know how you get on in the comments!
We love to see you learning.
It’s all part of being a GREAT student.
Hello Again, my Socratica Friends. We're here to help you be a great student by making great educational videos!
This is a real labor of love for the Socratica Team.
We spend all our time researching, writing, filming, and editing our videos.
In fact, there aren't enough hours in the day to do it all.
How can you help?
You can support our work on Patreon.
This is not an obligation.
Our videos will always be free on YouTube for everyone to watch.
So if times are tight, don't send money.
You can still help us by watching our videos all the way to the end,
and then sharing them on Twitter, Reddit...tell ALL your friends.
If our work is valuable to you, please help us continue. Thank you!!