Welcome to CodeMusings
Welcome to CodeMusings! Since circa 2004, I've been teaching myself computer science. I've primarily focused on Web development, but am still fascinated by all things computer science.
I wanted to establish a place where people can glimpse various aspects of computer programming and programming languages. The site is designed so you can start wherever you like. The language section features brief overviews for various programming languages, and the article section features my ramblings on various topics.
Although computer programming has increased in popularity over the years, there still remains misconceptions that float around.
- Do you need to know a lot of math?
Mathematicians seem to have it a lot worse than programmers when it comes to popularity. An in-depth knowledge of mathematics is not necessary to become a programmer. However, mathematics can help in understanding various computational problems at a deeper level.
For me, my interest in programming led me back to mathematics in college. With an improved logical framework programming helped me build, I found relearning algebra and calculus much easier. Personally, I would recommend learning mathematics just because it's fascinating, but to each their own!
- Do I need to be able to think in binary (1s and 0s)?
You actually don't need to think at the binary level very much when programming, but it can depend what you're doing. In my case, I still think in decimal the majority of the time. However, having the ability to use bitwise operators in your language can be very helpful when the situation does come up (e.g., implementing a bit set for a prime number sieve).
- How long will it take to make a Mass Effect clone?
Your first game is more likely to run on a terminal. However, the fundamentals of game development go beyond just graphics. You may actually be better off starting with designing a board game.
As I cover in my introductory programming article, the road to becoming an adept programmer can be a long one. There aren't any magic shortcuts to mastery. If you find you can enjoy the journey to mastery, that's what's important. Try not to be discouraged, and feel free to experiment with various domains within computer programming. You might be surprised where you end up.
- Which languages are popular today?
While there's no surefire way to obtain 100% accurate metrics across all domains within computer science, we can get an idea using TIOBE's index for an indication of popularity. They use a variety of sources, and have scanned millions of lines of code.
Top 3 in the October 2014 TIOBE Index Oct 2014 Oct 2013 Change Language Ratings Change % 1 1 C 17.655% +0.41% 2 2 Java 13.506% -2.60% 3 3 Objective-C 10.096% +1.10%
My thanks goes out to the following:
- Subtle Patterns, for offering great background images.
- Steven Stengel, for allowing me permission to use pictures from his collection of awesome obsolete hardware (found at: oldcomputers.net).
- GeSHi, for providing a great tool for highlighting all kinds of source code.
- MathJax, for providing beautiful mathematics typesetting tools.
- The photographers who often go uncredited as their great work spreads across the Web.