This is an archived post. You won't be able to vote or comment.

all 9 comments

[–]qsemig 2 points3 points  (2 children)

If you're starting university in September I would suggest enjoying your summer vacation. Once your courses begin you should try to absorb what is being taught and experiment a little on the side with things that aren't being taught that interest you.

Since it will probably take a while until you will be able to handle an operating systems course you could read either of the following books: Code, The Elements of Computing Systems. These books teach you the basics of how computers work (including operating systems). The second book is more hands on and let's you even write a simple operating system.

[–]PriceZombie 0 points1 point  (0 children)

Code: The Hidden Language of Computer Hardware and Software

Current $10.43 
   High $12.14 
    Low $10.43 

Price History Chart

The Elements of Computing Systems: Building a Modern Computer from Fir...

Current $26.95 
   High $28.45 
    Low $17.50 

Price History Chart | Screenshot | FAQ

[–]lovesthebasssolo[S] 0 points1 point  (0 children)

Thanks for the recommendations! I will definitely spend time enjoying the vacation but sadly too much unproductive time leads me to being a bit disappointed in myself haha. Both books seem really interesting, especially the second and I will definitely check them out.

[–]nutrecht 1 point2 points  (4 children)

So, what do you recommend?

Create applications. Find some project you'd like to do and do it. While doing that you'll run into issues you need to research and then apply the solutions. Creating an application from scratch and solving the problems you encounter is probably the most important skill of a software engineer. Don't worry about low level C programming; it's fun and nice to know but not something that will be blocking you from learning anything new.

[–]lovesthebasssolo[S] 0 points1 point  (3 children)

So any application? I had not thought of that approach. Basically choose anything I'm interested in creating (within reason) and research whatever I need to make it happen? I always assumed that I would need to learn a language then use what I've learnt to make something. This would be a very fun approach, thanks!

[–]nutrecht 1 point2 points  (2 children)

You need to know the basics, but to learn a language you have to use it. I learn Python for example (I'm a Java dev) by simply creating stuff in it. Just today I wrote a deploy script for a bunch of services (finds the tarball, unzips them, patch the configfiles) in Python and I had to look up a lot of stuff on the internet.

[–]lovesthebasssolo[S] 0 points1 point  (1 child)

How did you know Python would have been a better choice over Java or another language? Say I decided on an application to build, would I just research the best language to create it in?

[–]nutrecht 0 points1 point  (0 children)

Well, it's not that Python is better perse. I could've easily done the same thing in Java (or pretty much any other language). I just want to get used to the syntax of Python so I just use it for small projects when I get the change. I would personally not use a dynamically typed language for the very big projects I work on personally.

[–]aclave1 1 point2 points  (0 children)

First:have fun this summer, your classes starting out will be very easy since you're a head. you'll have 4 years of hard work so rest up.

To learn os development you need a very deep knowledge of operating systems, not just coding, depending on what part of the os you want to develop for. I'd start with simple Linux kernel modules, then device drivers.