This post is part of a series of learning resources I created for the Parea section of my blog! I hope to inspire a genuine curiosity for STEM subjects, as well as help you succeed in them.
The simple, concise phrase, “Hello world!” is often the first line of code that a beginner will write in a given language. Though the idea of using sample test programs originated long ago, it is thought that the tradition of using “Hello world!” was influenced by a 1974 C Programming Tutorial. Beyond the basic “Hello world!” program, I was a bit intimidated by the field of computer science. However, as an artist, I began to view computer programming as a form of creative expression, and that drew me to the subject.
Computer science forms the backbone of the digital world, and the power of programming has unlocked new creative avenues. Through writing code, it’s possible to create art, games, calculators, machine learning models… and much more! Coding is a tool to help bring other ideas to life. Hence, this post aims to provide a guide on how to become immersed in the field of computer science, with different resources geared toward unique interests. Specifically, this post will give a brief introduction to coding & computer science, not focusing on more advanced subjects such as artificial intelligence and deep learning – that’ll be for another post. 😉
Getting Started: Programming Languages
Perhaps you’ve heard of various programming languages such as HTML, Python, Java, C, or block-based languages such as Scratch. Each has its own unique applications, as described in this section.
We’ll begin with HTML, which is often the first language that people start with. HTML is a markup language, or a human readable language that uses tags to define elements in a document. Alongside CSS (cascading style sheets) and Java Script (used for webpage behavior), HTML can be used for developing websites!
Meanwhile, Python is another language tailored to beginners, in part due to its easy to understand syntax. In the real world, Python is applied to the fields of machine learning and data science. I never found myself super interested in web development, but seemed to enjoy Python more and found this beginner’s tutorial helpful, as it helped familiarize me with the syntax while building logic and reasoning skills.
Java, on the other hand, is an object oriented programming language. It relies on the concept of developing “classes,” or blueprints, for certain “objects” (ex. how multiple houses can be developed from the same blueprint after altering a few key features). A great language to start with, Java is primarily used for developing games or large systems where multiple components are required.
There are other languages not covered in this section (C++, R, SQL, etc). However, once the logic, programming fundamentals are mastered, learning another language becomes more about learning the respective syntax and application.
Helpful Resources
The goal of this section is to provide a roadmap as well as resources to jumpstart your programming journey!
freeCodeCamp
This site is useful for learning ANYTHING related to computer science and mathematics (it’s personally one of my favorite websites!). Everything is completely free, as the founder’s goal is to provide accessible CS information for all. Though I have not taken advantage of it, freeCodeCamp provides opportunities to become certified in areas such as data visualization and machine learning. However, what I found especially helpful was freeCodeCamp’s curriculum. It started with HTML and CSS (web design) and provided a structured framework to develop a website, using step-by-step tutorials. Later, more advanced concepts in JavaScript, Python and data analysis were introduced, allowing the user to master the basics first. (Note: Accessing these resources involves creating a free account).
Furthermore, freeCodeCamp extends into a YouTube channel, which houses a plethora of hands-on programming and math tutorials, on topics ranging from data structures to bioinformatics. In summary, freeCodeCamp is highly tailored to the beginner and is a comprehensive guide to the world of computer science.
Scratch
Scratch was created by MIT as an engaging way for youth to explore computer science. Though I never got along well with Scratch, I recommend the projects on the Scratch community page, which are helpful for learning the platform. In essence, Scratch doesn’t teach coding, but serves as an introduction to programming concepts and logic.
W3 Schools
This site is helpful for grasping the basics of a variety of programming languages. It provides tutorials on web development, Python and more. Often, if I forget how to do something in a particular programming language (such as, declaring a 2D array in Python), W3 Schools provides a good refresher. (Note: It is helpful to create a free account in order to track/save your progress. Also, some parts of the website aren’t free).
Geeks for Geeks
Geeks for Geeks focuses especially on the intersection of programming and mathematics, as it not only provides tutorials on a variety of coding languages, but also on how to problem-solve and implement mathematical concepts in code. It also provides tutorials on machine learning. Usually, whenever I search up more information on a particular algorithm, Geeks for Geeks is the first site that comes up.
First Projects
Lastly, this section includes resources to get started on your first programming project! As reflected in this section, I enjoy relevant, hands-on projects. As such, my first programming ventures involved programs that accomplished mathematical tasks, games in Java, personality quizzes or other gadgets such as a task manager. I hope to continue updating this section in the future!
Brackeys: C#, Unity & Game Development
Brackeys is a YouTube channel dedicated to game development in Unity (a game dev IDE) and C# (they also provide free game development assets!). Although they stopped uploading videos in September 2020, the resources on their channel are incredibly helpful for the beginner dipping their toes in game dev, or for experts looking to acquire new skills. The engaging, concise videos are in an easy to follow step-by-step format, making them ideal for most audiences. Specifically, the How to Make a Video Game playlist teaches both the fundamentals of C# and Unity.
I’ll also recommend the courses shared by Unity, free of charge as long as you have an account. These have been so helpful in not only getting acclimated with the Unity development environment, but also in picking up programming logic and C# code specific to Unity’s development process.
CodeWithChris
CodeWithChris is a helpful resource for learning app development. The tutorials are centered around iOS development in XCode and Swift (the language XCode uses). Videos range from beginner to expert, and are explained in a step-by-step format. Specifically, there are several different playlists geared toward building an iOS app with no prior programming experience.
And, that’s it! Hopefully, this guide provided a helpful introduction to the world of programming as well as how to dive into it. Feel free to share any resources and tips in the comments below.
Best of luck on your coding journey!