The Use of Memory in Game Consoles

Today’s topic for this blog is the use of memory. I decided to write about the use of memory in game consoles. We are dealing with things like memory cards, hard disks and random access memory. I also tell you a bit about processors and how computers deal with the actual ways in which the player interacts with the game.

This is not a science writing but more like something that I wanted to briefly write to you since I happen to have some experience in playing these video games and I also have this background in studying and working with computers. I have been playing games a lot. I have read a book or two about the use of memory and also studied a lot about this subject.

What really made a difference in the use of memory for video game consoles was the introduction of the optical drive. You did have a space for couple, maybe four, megabytes for your game. Well, like you might know, a CD-ROM disc has somewhat a space of 650 MB. So the amount of space was more than 100 times larger.

What about saved games? A supported disk drive was introduced with the release of the original Xbox. It might be the first game console to have a hard drive. Before this we had to use memory cards for storing and also organizing our saved games. Hard disks also allowed many other things. It also made installing games to the hard drive a norm.

I am trying to explain the difference between temporary memory (like RAM in the world of computers) and staying memory (HDD and/or SSD drives). So basically RAM, or Random Access Memory is something that the system uses while it is powered. After the power is cut off the memory disappears. In programming you use different variables to store the data temporarily.

Hard drives can save data that is included in these variables so that it can be accessed also later on. Earlier there were typically HDD drives used which offer a lot of space but they are much slower in processing the data than newer and more expensive SSD hard disks. The data in a SSD or HDD can be saved in different forms. Sometimes the programmers can use text files and sometimes forms like JSON. Data can also be serialized in a way. There are many possibilities. Basically you are saving something to some file or files. Sometimes there is also some sort of database used.

The data moves between the components of your gaming device through different kinds of busses. You can probably read more about electronics from your favorite search engine or maybe you can create a prompt for AI. I am not going to try to expain this so thoroughly at the moment. But if you are interested you can find more about this.

How does the gaming console work basically? There is a loop in the program code that keeps refreshing the screen. The frequency is blondly called FPS. It stands for Frames Per Second. This can be for example 60. The system reads all values of variables that are in the code and updates everything regarding to the values that the variables hold.

The game system detects any interactions using the code. The game detecs what controllers buttons are pressed and for how long. Then the screen keeps updating. There’s a lot of things happening. The main source for the things that are happenig is the actual source code of the game. You might think that it is easy to read a source code but it actually is pretty. It is way harder than reading something that a blogger has written to a blog post. And only the person that has written the code might fully understand it. Sometimes even this is not possible. The code can and is actually preferred to have comments in it also.

So to summarize this blog post we can conclude that memory is used in many ways in game consoles. Data is saved and handled. We have come a long way from game consoles like Sega Mega Drive in which you aren’t able to save at all (you do if you have a battery inside the game cartridge) to modern consoles in which you have huge SSD drives of several tera bytes of space for lot more content than just your saved game data. I encourage you to find more information if you are deeply motivated in learning more about this very interesting topic.

Are We Lacking Excitement?

I barely remember the beginning of the 90s. No, I wasn’t partying hard back then. I mean that I was only a young child that didn’t have this ability to understand some things. I got the idea for this blog post as I was once again playing some Golden Axe 2 for Sega Mega Drive. It was first released in 1991.

I remember that this was one of the most popular games we had that time for Mega Drive. I definitely connect this game as a defnite Sega game. There are some games that just make me feel this way. We can mention games like Sonic and Outrun. This can tell you only how skillful these engineers and game designers were. They were not playing with their technical skills.

If we think about technology we can think about 1980s and how Commodore 64 influenced several young people to commit a huge amount of time to programming and getting into this technical field as a hobby. Some might have even made it to the industry as a professional. I can think of people like Linus Torvalds right here. Did you know that he is also from Finland? Well, he is.

While users of Mega Drive gaming system weren’t able to program or design their own games with this device there definitely was some sense of excitement towards technology, computers, games and everything else related to video games.

If you play Golden Axe 2 for a while you can notice how thoroughly the makers of this game have thought about many aspects about this game. First of all we have here some very carefully designed characters. We also have these surroundings that can make your imagination take a dive in to the wolrd this game presents. There is also a light story among with some enemy characters. All this just explains the quality of this work. This is defnitely a good game of this era.

The gameplay is very nice also. Graphics could be better. It’s a shame that we haven’t seen a new Golden Axe game for a while now. There was a game released for PS3 and/or Xbox 360 some time ago. But I think that this game looks good if you think about it being released back in 1991.

What would I add to this game if I had a change to modernize it? It lacks some character development in my opinion. I could see this game being a very nice action RPG if it would be brought to this day. If there would be experience points and some way just to develop your character. The story and surroundings are just so detailed. This game has taken some influences about some phantasy literacy and maybe even movies. So it would be a good fit for a role playing game.

Mega Drive had a deep impact to game development. Did you know that Diablo was inspired by NHL 94? Well, it was. Turn based role playing games were dominating the markets before Diablo was released. The developers at Blizzard thought that they should bring these action features to the world of role playing games. At the same time real time strategy games were beginning to become more popular.

But we should return to the main question that I set in the beginning of this blog post. Were things different back in 1991? And if so how? The biggest change there has happened is that video games are a way bigger business today. Do we have enough room here to create something unforgetable? Are we still excited about new technology and with the same time about building new phantasy stories, worlds and characters?

I think we haven’t lost all of our excitement. But if we wish to progress in this world of gaming we have to keep this matter in our minds. Money is important, I know that. But it shouldn’t take away these opportunities and all this excitement. So let me say, once again, don’t loose your dreams! Don’t loose the excitement…

The Role of a Single Variable in an Application Source Code

What is the role of a variable? In case you don’t know about software design, or basics of programming, let me show to you what kind of a term it actually is. Variable has a type which defines what values it can have. It can be a number, a single character or combination of multiple characters. A variable can also be part of an array that has several variables that are of the same type. Objects have properties and every implementation of an object has a variable as a value to its properties. But we are not going to object oriented programming or modeling…at least not yet.

Together with other variables in a program variables form a state of the program. If you think about thing in any retro game console emulator there are so called “saved states”. This means actually what it exactly is. In Super Mario you have variable, which says in which world you are, which stage you are, were you are positioned in the actual level and, for example, how many lives you have left. So all these variables form the state. You with me?

One thing I wondered for several years especially when I wasn’t too deeply involved in actual programming and I was still trying to get my thoughts gathered was “how can you save the entire game when you are saving your game in any modern game?”. Of course you aren’t saving a full copy of the whole game. You are only saving these values of all these variables. You are saving the state in which the application currently is. And basically, this means text. How much would a text file consisting of, maybe, some hundreds of lines of variables and their values take space? Yeah, you figured it out…it wouldn’t take a lot of space. Not at all.

What does take space if any commercial modern game would be considered? Graphics, 3D models, the recorded sound effects and all of the dialogue of the game. They all take a lot of space. Especially when you think about today’s high quality screens with 4K pixels and high quality sound coming out of the selected audio device. Of course what takes also power is all this processing. The processing of code is done by processor of your computer. Graphics are processed with GPU (Grpahics Processing Unit). Today there is a need to maximize the use of a powerful GPU to process the data as efficiently as possible. The processor then works with the GPU and also the hard disk. We have already witnessed fast data processing of SSDs. SSD is short from Solid State Drive. Earlier we had hard disks called HDD (“Hard Disk Drive”). If you are really into computers and building setups you probably know that HDDs are a lot cheaper than SSDs. I mean, of course, the monetary expense of a unit of space. It is a lot more expensive to get a 256 GB of SSD space than it is to get this same space in a HDD.

Right now we are deep in the workings of a personal computer. All these facts I have already covered took me years to get into. It took me involvement. And mostly, it took a lot of time. I started getting in this, very deeply and by studying, back in 2008. That was the year I started studying first electronics and after two years I moved on to study computer science in an University of Applied Sciences. After I graduated back in 2016 I was having a hard time finding a job. After two years of looking for a job I found one as a customer servant. I have worked my way from there and now I work as an IT support person. And all this started from trying to figure out how the saved game system works in my favorite computer or video game. I think the game I was thinking about was Fallout Vegas.

The question made think deeply. How was the game able to save all this information to a small saved game file? I got the answer but it sure wasn’t an easy peace of a cake. I didn’t succeed very well in courses that dealt with a computer’s memory usage or how is magnetism, a physical phenomenon, handling all this data on a hard disk. But little by little…I got the whole picture. I finally got to combine all this information together. All this started by playing games.

Today, I find that there are several areas that are really interesting to me. If you want to learn some knowledge very deeply, like how computers actually work, you will have to use your past knowledge and experiences to guide your thoughts through it all as a process. Writing something “open” to yourself so that you understand what your mind is dealing and handling is one big key for understanding complex and theoretical matters. And teaching someone or having a conversation about the fact is very useful many times.

I don’t know a lot about actual electronics or how the architecture of a full computer work. Well, I actually know something about it. That isn’t however enough for me to solve every problem. This is also where search engines or even a tool like ChatGPT would come in handy. Of course you can look up information from books or your notes and study some more. Just try to remember to take it piece by piece. There is an old saying. It goes something like this: “nobody is a master as you are born”.

Web Page as a Medium

I have spent so much time learning to write and also express different ideas on a web page. There has always been this certain appeal for me to websites. It probably all began when I started getting into HTML in 1999 or 2000. So, that’s ages ago. But that is where it this interest started for me.

I was far from a professional. At first I didn’t even study anything related. At the time I was still a student in elementary school. This was even before I went to high school. It started as an interest and a hobby for me. I didn’t think that I would become some sort of professional in this exact field. But that actually happened a bit later. But lets just say that I was sort of free to do whatever I wanted at this time and I also found many interesting subjects in this time in my life. That was also a time when I got deeper into gaming.

So, there has always been an interest for me in designing and programming websites at least at some level. I am still not a seasoned professional. I am still taking those steps toward understanding this form of art and also a very strong medium. Because I think that’s what a web page really is – a medium. There are so many things you can express in a website. It might be a single page application but I myself started with static HTML. I soon got to CSS also.

I started building websites with simple HTML tables. I liked creating different types of interfaces and menus and also logos and headers. That was fun. I liked modifying images and changing how they were colored and represented in a web page. Soon it came to my understanding that tables weren’t a good way, anymore, to design a website. So I learned some newer techniques. I got far. I still stumbled as I encountered something like PHP, MySQL or JavaScript. I understood how powerful they could be but I wasn’t ready to move on to actual programming. I think that would have been too much for me to cope with as I was learning everything on my own with no teachers or other students or even a decent theory book.

I did learn more later. Today, I can create a static website. I still don’t know how to use React deeply and thoroughly. There is still lot to learn. Websites are now fully responsive and can be used with different kinds of tablets and phones and maybe even some other mobile devices. I think the medium is still there. You can write a book on a website. You can play a movie on it. There are several ways to draw content to the screen using your favorite web browser. You can create a game for others to play. And all this is achieved with a certain limit and you don’t have to actually install any other software than just your web browser.

There are many types of browsers available. Microsoft still has its own browser and it is currently called Microsoft Edge. Google has its own web browser. It’s called Chrome. You have also, the descendant of Netscape, Mozilla Firefox, which is very popular. Then there are browsers like Opera and Brave. Web browsers do gather information about you, the user, in form of cookies.

There are countless possibilities in what way you can deploy this medium. The content has to be in a form of HTML and it’s functionality is defined in JavaScript, be it as a framework or vanilla. You can also tune the look and view of your page with CSS. Together these, sort of, languages form a web page. This form is very different from what you have when you write a story. Then you are only using a tool like Word. You have a very limited way to control the content. Then you have complex ways to express your content with a pen or even a brush with a paper. This means actually drawing something. Creating a website is more technical and also more simple way to express some ideas you might have.

Websites keep interesting me a lot even today. I like fiddling around with digital photography and writing stuff. I like also the technical stuff. The programming side is very interesting. I think I have now a grasp of what can be achieved with a web page. I just have to grab myself and start working. There is lots to do and I have lots to achieve, still.

Simulation vs. Reality

I was playing Dirt 4 as this idea entered my deeply focused mind. As you might know, as a gamer and reader of this blog, Dirt 4 is a rally game that has said to be somewhere in between a simulation and a totally arcade type of driving game. Of course I am once again playing with a game pad instead of a driving wheel. So, that makes it more of an arcade style of play. But what I actually wanted to represent and deal with this blog post is that how can playing something, be it simulation or not, to actually give you a perspective on how to approach a skill or some activity in real life and in reality?

Games can give you an idea of something, for example driving a car. This activity is not real driving. It is something a bit similar. Of course there are no risks. If you would really actually drive a car over 160 kilometers an hour on a road somewhere in the shore of lake Saimaa, Finland, you would have to really have some skills and know-how to even operate the car. There is this thought of driving and kind of a fantasy that are combined when you play a rally game.

Can playing games give you some skills that you can actually use in real life? Yes. Definitely. Sometimes these matters are technical details of the computer and what it does when you play one of your favorite games. I am many times thinking about technical and programming related matters when I am playing a game. I might think about how this particular game works, how it collects your input and keeps, sort of, count of the total progression of the player.

Sometimes, like when I play a basketball game, I start to think some matters that are related to real life basketball. There are lots of facts that you can connect to a video game. A game is always some sort of a representation of what it is trying to model. These models come from real life. Of course games can represent an idea of a game, also. There are types of games that you like to play and there are these genres that tell us about what kind of a game it is.

Playing games is an activity for mind but also for the body. This is why we have eSport events and it is completely understandable, today, that you can compete in playing games. Some games, like chess, are purely for mind and some games even test our nerves and reaction times. That is why some games you can compete in as a professional only if you are a young person.

There might be a way to think through your physical performance in some activity with playing a game about it first. If you think about basketball or driving you have to be able to explain to others what you are doing and how. For example, if you are a coach, you have this vision that no one in the team doesn’t have. You know how players in your team are feeling, what are their skills and you have also an approximation of how they will perform in the game that you are about to participate in soon.

It might be easier to make a game out of some sport than it would be to create a sport out of a game that doesn’t have anything to do with reality. Are we actually always modelling real life when we create a game? We definitely talk about games a lot. There is lots of going on in a game and in a real life. These all things kind of keep mixing up in our minds. Definitely games brings us a way to express things. Sometimes we mix reality with fantasy.

I am really into Java programming. This programming language has a lot to do with models that are made out of real life objects. It is called object oriented programming. If you are interested in this type of thinking I encourage you to seek more information. I don’t have a degree or a deep knowledge in psychology or philosophy. I still wanted to write about this matter. Maybe you got something out of this blog post. I will write a post again, soon.

What It Takes to Create Own Video Game?

What it actually takes to create your own video game? Does it take hard work or maybe talent? Well, that depends also on how high you set yor goal. It isn’t so hard to create a text adventure game. For me, the hardest parts are concerning programming and graphics. I have created some minor prototypes and an actual working text-based adventure game.

How did I make my game? I programmed it with Java. If you program some other type of game, like a simple platformer with some basic graphics, you are basically creating a never ending while-loop, inside your code, that will refresh the screen like maybe sixty times in a second. The code updates the screen all the time. It also records every rerlevant key presses and updates the objects that seem for the player to be moving on the actual screen.

This is the basis of a simple game. You can also create event or command based games. This is what I did with my small text adventure game. The game reads your command, like “look around”, and then gives you some new output in a form of text. And the whole text adventure game happens on a command prompt inside your own program or game or what ever you are running your code with.

So, what do you need to do when you actually create a new game. There’s lots of things to work on. You need a simple plot and some kind of a scenery. You need to know how the player of your game can interact with the software, or computer, when the player plays the game.

There are also more areas of knowledge that are needed. You have to come up with whole world of music and sound, graphics, controls and storyline. Making your own game is technically demanding. You have to know your computer and how it works. You know, a good painter doesn’t necessarily know how to make good-looking video game graphics. You might need a voice actor or maybe even three or four of them.

Making a video game is demanding. But it is very rewarding if you can actually make a game that people like to play. Some people might be more interested in finding out how did you come up with your game. That can concern programming, creating the music, writing the plot or dialogue of the game or some other area.

If you still want to make a game on your own, remember to not to set the aim too high. And this is propably a good advice especially when you are just starting out. Remember to try to collaborate with other people that have some of these skills I have mentioned in this blog post. If you feel like it, you can share your source code with other developers. There are also lots of information available online. There are materials and tips for you to use before you try to make everything by yourself.

There’s a saying in Finnish that goes “kukaan ei ole seppä syntyessään”. I am not going to try to translate that. But this means that you have to take your time to learn the craft. I hope you got some new ideas from this blog post. We were moving on some game desing principles here in this blog post. Maybe I will write something about actually playing some video games the next time. We will see that.

Setting Up C++ Programming Environment in Windows 10 Is a Pain

Yesterday I was excited and ready to start getting to programming with C++. I thought that it would be nice to learn and to refresh my memory. I have some years ago completed a programming basics course in C++. The idea of having an executable that could be run on a wide range of devices was the idea that was so fascinating to me. I use Windows 10 a lot. So I decided that it would be easiest to just install some IDE and also a compiler.

I was so wrong with my decision. I tried to install Cygwin. During the installation you would have to select all the components that you definitely need for C++ development. There are hundreds of them. If you would like to install all of them that would take days to download and install. So that basically wasn’t an option.

I have been around Java from 2010. I am very familiar with setting up programming environment for it. It is just way easier than with C++. I wanted to code in C++. I just think there are so many options if you learn and use this programming language. What was my solution?

While I was going through the material I found online I figured that it might be easier if I would start with Linux instead of keep hitting my forehead to Windows 10. I know that Microsoft has been trying to make it a bit easier to use Linux’s software on Windows. That however wasn’t the solution for me. So I swithched to my laptop that has a dualboot install of Windows 10 and Ubuntu.

I had already Visual Studio Code installed. All I had to do was to install the extension inside VS Code. That was almost it. I had to look up how to run build inside the IDE but that wasn’t a hard thing to do. So I got to programming quickly.

It was my goal to just write something that would work and refresh my memory on the programming language. As I got my programming environment to work I got to the actual programming. I had to look up some tips on how to present text and read it in online. I am serious as I say that any programming experience in any language makes it way easier to switch to a language that you aren’t already familiar.

C++ is used widely and still in 2022 for programming games and other software. Aside it being a tough to install in Windows it really is a dynamic programming language. There basically aren’t many limitations in what it can be used for. Even websites and desktop applications with a GUI can be build.

What I build yesterday was just a tiny application. Actually it is a personality test with a lot of humourous edges on it. You answer in five questions which give you points for a type of a person you are. There are three types. The personality type that you are is the one that gets most points based on your answers. Yes. And the types are (translated since the application is in Finnish) “a talented model citizen”, “an alcoholic” and “loser”. So you are one of these. I know, there aren’t much of a choice.

Anyways, I had fun all of the about three hours I spend developing this funny or stupid app.  I had fun. It was nice. The program managed to fit into about 150 lines of code. So you can imagine that it wasn’t so complex. It had some basic text that was read in and also printed out. It used different variable types, some loops and decision making with if-else structures and that was basically it.

If you would like to program with C++ yourself I highly recommend using a computer that has Linux installed. I also like Visual Studio Code which is a free text editor or even an IDE (which stands for Integrated Development Environment).

That Certain Randomness

There is this certain randomness in video games. There is fast learning involved especially when you start playing some game. Games are usually easy to pick up but hard to master. That gives you a feeling that you want to play this game some more. You learn a lot. How much does your skill develop when you are playing? It seems to develop a lot. That isn’t although the only thing your success in playing the game depends. It also has a lot to do with good luck. We can name this element “certain randomness”.

This idea became clear to me as I was one day playing again Need For Speed Hot Pursuit Remastered. I had to catch at least 5 racers as a police officer. The task seemed hard. I kept failing and failing. After trying as hard as I could I got lucky. There were several bad guys captured. It didn’t have so much to do with my skills as it had to do with pure luck.

You might be familiar with randomness in programming. While it is debatable if the random number generated is actually random or not there is a nice way to generate a random number between certain values that can be defined in almost every programming language. At least this is possible in Java and Python. How I first got to know this type of numerical behavior was as I had to deal with a Java application that had to generate a value of a dice getting tossed. You basically had to generate a number between one and six and do it as randomly as possible so that it would describe in the source code how a dice would act in real life.

If you know anything about dices and how are they used in games like Yatzy or some roleplaying game you can figure that their role is to create this random feature that gives you a nice feel when you are playing. It gives you an element of luck. For example if dice gives you 1, 2 or 3 your hit of axe has hit and if it gives you 4,5 or 6 you have missed. You can also define the enemy’s body part that was hit and define the amount of damage caused. A common way to use dices in board games is how many times you can move your character. You get to move the character the amount of times that the dices value is showing.

Playing video games is not only about your skills or your reaction time. It would be very boring to play games that only required skill and would have nothing to do with luck. But if everything in a game is random that isn’t satisfying also. Take poker for example. It is nice to play a game or two of poker. Would you play poker for three hours? Would you enjoy the game if there were no money involved? Of course the answer to these two questions are both “no”. Poker is such a game of luck, isn’t it?

I think the best games are the games that mix randomness smoothly to the skills needed to succeed. If you succeed all the time doing exactly the same thing it gets quickly boring. You want challenge. And you want some surprises. Nowadays video games are getting more complex. This makes things more interesting to us players and I think for also game designers. While you can mix things up by making them abstract and random you always don’t even have to. That’s because games are more complicated than this. You can watch the statistics, like how many kills you have in a shooting game, and make these figures random but in this case the number of kills depends also about the players skills and this forms the players performance. Some things can be simple and random while others can just be thought to be like that.

Anyways. Thanks for reading, again! I am going to continue to have my couple days of since it’s the mid summer party here in Finland. I am probably going to play, make music and read some books. We already had a small meeting with a friend. I have also something more to tell you about our game that we hope to have for sale soon. See you next time!

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.

Social media & sharing icons powered by UltimatelySocial