I Finished Reading “Ready Player One”

So, as the title of this blog post tells you, I finished reading my copy of Ready Player One. It was originally published in 2011. My copy of this book is printed in 2018. This is the translation. I read this one in Finnish. I just wish that I would have read the original book in English. The translation isn’t bad. I just think there are so many terms in English “nerd slang” that you cannot directly translate to Finnish. They have done their best. I know this because there is a person mentioned in the first pages of the book. That person is Jyrki J. J. Kasvi. Or at least was because, sadly, he passed away some years ago.

This book offers a story and lots of references to 70s, 80s and 90s video game related content. This includes games, music and movies. When I am reading this material, I feel very much like a real nerd. I can feel the writers, who is, actually, Ernest Cline, passion, so to say, about every movie and game that he mentions in the book. You probably get who this book is targeted for. It is a fun read. All this talk about Atari 2600 makes it also a bit funny. It just shows how much this console mattered to the author of the book.

The book has a bit over 500 pages. On these last pages there is an advertisement about Cline’s new book called Armada. It is said that it will be available in 2018. I didn’t actually buy this paper back book as a new copy. I bought it from flea market. It might have been from recycling center. I don’t remember clearly.

The story takes place in year 2045. People are really into virtual reality gaming. There is a huge video game called OASIS. It was developed by a now deceased game designer James Halliday. He left a quest inside the game. There is a huge reward promised to that person that can solve the mystery. There is also a large company called IOI that is doing its best to get their hands on this award. The book takes you through of how the main character, Wade Watts, deals with this challenge.

This book has been very popular. There is also a movie made out of it. With all this hype around the book I found it to be a nice read. And of course it is related to the subject of my dearest hobby – collecting and playing video and computer games.

How Has Learning Computer Science Changed?

I was reading this book about JavaScript programming as I thought came to my mind. The book was dealing how you can launch a new web browser window  and how you can do it in JavaScript. I started thinking a bit about this.

I have always programmed something on top of a heavy operating system like Windows 10 or Ubuntu Linux. I am able to create a new window inside a web browser. I am able to produce code that can manipulate the contents of a web page inside the browser. What about the machine level functionality? How computer works inside?

I came to think about this for a second. Earlier, like back in the 80s, computer hobbyists had a computer that they could program a bit simpler and deeper with. It was Commodore 64. This device was partly an electronic device and partly a early personal computer. You could learn programming in BASIC or you could, if you had the talent and will to learn, program in assembler.

Assembler means that you are talking to the machine as close as possible. You get to temper with how the machine uses memory and so on. Commodore 64 was a perfect device for someone to learn skills like programming.

Today we don’t have such hardware. We do have complicated systems running complicated operating systems. You might get yourself a Raspberry Pi but that isn’t the same thing. I recently watched a documentary that was dealing with this issue. Back in 1990s there were people going to study Computer Science in universities. Nearly all of them had some background with C-64. Now there just isn’t a good enough source that you could basically learn and build on to learn some more about this field.

Things in computer technology have been progressing. It has become more and more difficult to learn the basics. It is also required for you to learn more about frameworks and software that runs on these complex systems. But you must remember that there is always the user in this field also. That’s where you can learn a lot.

Learning Some Java

Learning to program takes lots of time. When I first got interested in it I started with basics. I started making small websites with HTML. Then I learned more about CSS and got myself into some basic image manipulation that I had to do to make my websites look nice. Back then I got curious about actual programming. I tried my hand at JavaScript and PHP. As I was trying to learn by myself and not in any school or even in a single course I didn’t get far.

I really got into some, so to say, “real” programming when I started studying in a local school of applied sciences. I completed a course that was named something like “Basics of Programming in Java”. I learned many new and interesting subjects. First thing you have to do when you are just starting is to learn how to set up the environment for the actual programming. You might be using Linux or maybe Windows as your PCs operating system. You might want to install an IDE which stands for Integrated Development Environment. You also have to install, if you are going with Java, Java. I recommend using NetBeans as your IDE. It enables you to do so many other things also.

Learning to make games is based on learning how to program. You have to master the basics first. Then you can slowly progress to some advanced matters. While studying programming you also get to see a lot about how the computer that runs all these games is actually working. This is one of the most interesting thing for me and it also motivates me. I have alwaýs been a bit of a holic learner. That means that I want to analyze what I am learning deeply and know the subject and figure out how it actually works. The opposite of this learning attitude is atomistic attitude. It means that the learner is learning some plain facts that are true about the subject being learned and trying to memorize these.

The picture related to this blog post represents the first Java book that I bought as I started my studies. It got me really far. It took me years to learn almost everything in this book. I haven’t fully stomached all of the contents. It has been about ten years since I bought this book. So that tells you a bit about the quality of the text. This book is now already a bit old. I think today Python has become more popular than Java for the first programming language.

Where you usually start in programming is that you learn what are variables, how you construct the code with control structures,  like if-else-statements, how to use the most common functions that the language provides, how to read in text from user and how to print it and also how basic arrays are used. This small list doesn’t include everything. How I started was that I basically started a short course. Then I started a bit more advanced course. And then another course about object oriented programming. Since we are talking about Java OOP is important. I think with Python this subject isn’t as important.

Programming is only one part of what a graduated software developer has to know to be able to work professionally. While studying I learned a lot about databases, user centered development, testing, communications, foreign languages, physics, electronics, mathematics and so on. I took a course about processors also. I deepened my knowledge in software development as I had to choose my main subject from telecommunications, embedded systems and software. This choice was made after one and a half years of studying.

One thing I would like point out about studying. When it is summer the school is closed. You have to figure how are you going to spend the time. You might be working. You might want to take some remote courses like I did. Just don’t be too lazy andjust  try make use of this time somehow. Otherwise it might be hard to start working on your studies again when the summer is over. So keep that in mind. Resting is required but a pause too long can be harmful.

A huge part of getting employed is how well you understand what it takes to be a professional. You have to find the best frameworks and the most useful programming languages. Teachers know a lot but always someone knows a lot about one thing and someone else knows a lot about other thing. Keep your eye on the companies that are doing the things that you would be interested doing. Make some hobby projects to display your skills. It might be a good idea to share your projects in for example GitHub. And remember to build your resume. You can even add some supplement pages that give the employer an idea about your skills.

If you are going to study programming keep in mind that it takes time. Keep your focus. It’s a long road. Go for it if you really are interested in it.