Why Code in Class?
Hey fellow coders, I want to present a challenge.
I've got a strong notion that after learning four basic concepts of computer science in an academic setting it is better to continue learning about programing outside of class. I love self-directed projects, hackathons, Lynda.com, or working with peers on ideas out of class. I feel that I've picked up more skills and learned those skills better than if I had learned them in class. Do you agree?
The Four Concepts to Learn in Class
1. Basic concepts of computer programming.
Learn how to use compilers and integrated development environments to compile hello world in as many different languages as you can.
2. Basic data types.
What is an array, a pointer, types, objects? How are they used in different languages?
3. How computer algorithms work.
What is Big O, a binary tree, or Dijkstra's algorithm? How does the math behind these algorithms work and how would you solve these problems by hand?
4. How to apply these concepts.
Under the supervision of a teacher and by yourself, use a computer and programming skills to solve a task that would be impossible or take too long without a computer.
What about you?
I've got three examples off the top of my head on electives I've taken and how they would have served me better had I learned the topics outside of a lecture:
- Web development. You will always show better on a resume or interview that you've had a live website in use for four months instead of assignments from a class. Plus with technology changing all the time, you should be able to build a simple site in PHP, C#, Python, Java, C, NodeJS with a simple database in SQL, Mongo, or plain text. A single class would never cover this.
- Operating systems. Showing that you studied the linux kernel and are able to download and modify the real kernel on a local VM is much more impressive than any operating systems class assignment.
- Applied algorithms course. Learning how to make your own memory allocation algorithms for an assignment is ok, but showing that there is a real project that has a use case that requires a custom memory allocation algorithm is better.
Comments and Suggestions
Thanks for reading! Give a thumbs up, comment, and share this if you liked this article. Do you think elective courses you are taking or have taken in the past are valuable or do you learn better outside of class?
(all images were sourced on Google with 'Labeled for reuse with modification')
Hey you can learn here. http://www.99-bottles-of-beer.net/abc.html
Very interesting, I definitely like what you posted. For the first one it is very basic but helps us learn the system APIs and also the ways to use language. And the data types and algorithms , there is a huge topic which is data structure behind them. I think it's the most important part for understanding how to do programming and how it functions. From simple data structure to a high level one. What are the concepts behind those? And How does it get modified and improved over time? With those above, students can definitely learn a lot.