computer science: the ultimate beginner’s guide

My spiel:

In today’s day and age, there aren’t many opportunities left to create something from scratch. Everything’s kind of pre-made, and this, in my opinion, dulls human creativity. Considering the fact that our generation grew up with these privileges of having everything pre-made (which really hinder our creativity and chances to innovate), I think CS is a perfect field for those who want to make something new every single day in their life. CS will never be boring if you truly love it, and especially since it is a relatively newer field, we will only continue to discover and innovate in this field – do not miss out!
Here’s to creativity, and to embracing the trademark of our generation: here’s to computer science.

Get started:

Basic Programming and Discipline:

At the heart of computer science is programming. So naturally, learning how to code would be a great place to start if you’re thinking of pursuing CS!
ANYONE, regardless of age or gender or race or any other silly divide, can code. If you put in the effort, you will get awesome results. The only thing standing in between you and your goals (as cheesy as it sounds), is you!

I starting coding in the seventh grade. There is a bevy of online resources (that are also FREE) that you can use to learn how to code from the comfort of your own home! I will provide a short list of some websites below:

  • Coursera (MY FAVORITE ONLINE COURSE WEBSITE EVER)
  • Codecademy
  • Khan Academy
  • Code.org
  • edXThose are just a fraction of all the “learn to code” resources available online – and each one contains more information than you could ever imagine! You could sign up for a course and come out completely educated in the basics of Java or already creating beautiful CSS pages or writing complex algorithms.

BUT

Although you have everything that you need to learn CS, the biggest factor that will determine your success is your DISCIPLINE!
Especially, with free, online courses, where you are not going to be penalized (in the way that school does) if you don’t stay on top of your work, it is imperative that you stay focused and put in the hard work required for the goal you’re working towards.

It is much harder than it seems.
It’s especially tough if you’re a competitive student at school, as it is incredibly difficult to balance other activities with a plethora of schoolwork; but I cannot STRESS HOW REWARDING learning computer science is.

To make sure I got my CS work done, I created a schedule where I allotted time for coding. I also informed my parents that I was enrolled in these online coding courses, because as we all know, they really are the best people to remind you to stay on top of your stuff. The focus you can gain from taking on more responsibility is a quality that will help you in any aspect of life.

Moving on, once you are sure that you are disciplined enough to take a CS course online, you should decide which course to take! You should base this decision off of what you are interested in within CS; I will list a thought flows below:

Are you creative and do you want to design websites?

  • HTML
  • CSS
  • Javascript
  • WordPress, Drupal

Or are you more into the logic of programming? (also great languages for beginners)

  • Python
  • Java

How about if you want to make apps?

  • AppInventor
  • C++
  • PHP

These are just a few examples of the languages you could explore, but they tend to be the most popular ones. Personally, I love Java and Python because they are both simple in syntax, but powerful in execution.

Logical Thinking:

If you want to take a different approach to CS, that is completely okay and super cool!

If I were to explain CS in the simplest way, it would be something like
logical thinking + coding = computer science

In the section above, I covered the more popular side of CS – the coding. However, the other fundamental part of CS, which is sometimes (incorrectly) not even associated with CS, is logical thinking. No matter how well you know the syntax of a language, knowing the logic behind a program is more important. (Analogy – knowing the words of a language, but not able to speak logically).

And it is for that reason that being able to think logically/critically is essential to CS; beginning by learning this aspect of CS is a smart choice! Also, learning how to think logically and critically not only helps immensely in CS, but it will help in you throughout your life; these powerful types of thinking will help you approach problems with a “think out of the box” kind of mindset – making your mind a valuable asset to anyone looking to solve problems creatively!

If you want to learn how to think in this way, I would suggest that you begin by taking a course! I’ll list a couple below:

https://www.coursera.org/learn/uva-darden-design-thinking-innovation
https://www.coursera.org/learn/mindware
https://www.coursera.org/learn/logic-introduction
https://www.edx.org/course/logic-computational-thinking-microsoft-dev262x-0

Comfortable With the Basics:

Once you’re comfortable with the basics of CS, don’t just stop there! In fact, this is where the real fun begins. You can start to use your skills in competitions where you can gain recognition, or you can pass your skills on while spreading the message of CS! There are just so many options. I am going to elaborate on a few of my favorites below:

Competitions:

If you are in high school, a great way to use your new CS skills is by participating in competitions. For those who live in the U.S., the USACO is one of the most prestigious competitions there is. If you practice hard by doing numerous practice problems, you’ll not only be improving your coding skills for life, but you’ll also be setting yourself up for success in the USACO competition. You can read more about this league on their website:

http://usaco.org/

There are so many more competitions you could participate in; I’ve put together a very short list:

  • https://community.topcoder.com/tc?module=Static&d1=hs&d2=home
  • http://www.acsl.org/
  • https://dreamitcodeitwinit.wordpress.com/

And if you’re looking for a really fun way to show off your skills, definitely participate in a local hackathon. Oh, and before you raise your eyebrow at the word hackathon because it makes you think of sketchy people wearing dark hoodies and typing at an ungodly speed and claiming that they’re hacking “into the mainframe”, let’s clear something up. (Quickly read the article below):
Summary: “Hackathons provide a venue for self-expression and creativity through technology. People with technical backgrounds come together, form teams around a problem or idea, and collaboratively code a unique solution from scratch?—?these generally take shape in the form of websites, mobile apps, and robots.”

Basically, hackathons are a really entertaining way of showcasing your CS skills; you can collaborate with others, share knowledge, code, and maybe even winning prizes for it!

Help Teach CS/Spread the Message:

If you absolutely love CS and your new skills, and you think that everyone should have the pleasure of learning the wonderful subject, then by all means, go and make that happen! Teach it.

In fact, teaching CS – and spreading the message that anyone and everyone has the potential to do it – is one of my passions! I’ll describe how I implement this below:

I began by going to my local elementary and middle schools to inform students about CS and teach them the basics of coding. I did this by reaching out to some teachers via email; I conveyed my information in the form of a fun powerpoint presentation. This took time and effort to put together, and so did coordinating presentation times with the teachers; but watching those students’ faces light up when they realized they had successfully typed their first lines of code, or seeing passion spark in them when I told them my CS story, those reactions make the effort more than worth it.

I am going to follow up on those initial presentations by organizing coding workshops for the students. If you enjoy coding and feel that you are good at it, this is a great way to share your knowledge. All of this will take time and effort, but since if you are passionate about it like I am, it doesn’t feel like work at all!

Start a school CS club

Additionally, you can share your CS passion with your school by starting a CS club! How to go about starting a club varies from school to school, but a good way to start would be to speak with who is in charge of clubs, pitch your club idea, and make a short presentation about what it would do/why you are qualified for running it.

Your club could do several things through the school year! You could literally accomplish any and everything that I listed above, depending on your goals. You could organize workshops for club members who are interested in learning how to code, you could prepare for coding competitions together, you could arrange CS themed field trips, and you could even arrange your own hackathon!

For my ladies in CS, if you see that CS is dominated by men (stats don’t lie), and you want to help more women pursue CS, your club could be centered around closing the gender gap in CS! A good way to do this would be to start a Girls Who Code chapter in your school.

Interdisciplinary CS:

I think one of the biggest reasons that people shy away from CS as a passion is because they believe that CS entails sitting at your desk job for hours at a time, typing away frantically, and at the edge of insanity, because of how much you’ve been coding.

WRONG. INCORRECT. INACCURATE.

CS is not. Just. coding.

CS absolutely can be and is more powerful when combined with other subjects! I, for instance, have a passion for both biology and CS. This does not mean that I have to ignore one when pursuing the other! In fact, the combination of both of those subjects is what I absolutely love! I knew that I definitely wanted to pursue bioinformatics (bio + CS), so I took an online course on Coursera (by now you should know that I’m in love with that website).

And I am sure that you have other interests besides CS as well, so I encourage you to take full advantage of that and combine those passions with CS. Let me show you what I’m talking about:

  • If you like art + CS
    Digital design
  • If you like science + CS
    Bioinformatics
    Computational bio
  • If you like business + CS
    Fintech
  • If you like medicine + CS
    Prosthetics
  • If you like data/math + CS
    Artificial intelligence…and that’s just a short list!

Final thoughts:
So there you have it; this guide was a culmination of my own personal experience, extensive research, and lots of love for CS. I guarantee you that there is enough information and enough options in here to last a lifetime. I hope you use it to the fullest.

– Founder Shuba Prasadh