Is an OS a useless inspiration for learning programming?

Programming, for all ages and all languages.
Post Reply
mac
Member
Member
Posts: 144
Joined: Tue Sep 23, 2014 6:12 pm

Is an OS a useless inspiration for learning programming?

Post by mac »

I really need help on this one. I decided to learn C a month ago, kind of because I wasn't really sure of myself of which direction to take, even after spamming these forums up asking for advice (which registering in this forum was a bit of a mistake in the first place, and blame my high spamming count for my lack of great online communication skills). But now I finally wonder if OSDev or operating systems as a whole is a bad or useless way to be inspired to learn programming?

I'm not as concerned about my choice of first language. And my uncle supports me when I announced to him my learning C (he once worked at AT&T in New York/NJ and had exposure to Unix), even though I tried messing with Python and "language-hopping" for a little while before.

And this isn't necessarily implying learning to program while developing any OS.
User avatar
Geri
Member
Member
Posts: 442
Joined: Sun Jul 14, 2013 6:01 pm

Re: Is an OS a useless inspiration for learning programming?

Post by Geri »

if you continue your logic for days, you actually can demotivate any activity in any profession
Operating system for SUBLEQ cpu architecture:
http://users.atw.hu/gerigeri/DawnOS/download.html
mac
Member
Member
Posts: 144
Joined: Tue Sep 23, 2014 6:12 pm

Re: Is an OS a useless inspiration for learning programming?

Post by mac »

What logic are you talking about?
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Is an OS a useless inspiration for learning programming?

Post by Solar »

An OS project is hugely unlikely to ever get into the "useful" stage (as in, actually working, and a good choice to actually work with). Kernel space programming is also a very involved, unforgiving environment, with many things you need to do / learn for it that you will never, ever, need in any other field (except hardware driver programming). It involves handling lots of technical information. You are also, by definition, reinventing the wheel.

For some, that's exactly the incentive why they pick it up.

To be answering your question more directly, if you check the Wiki articles Required Knowledge and Beginner Mistakes, you will find that they strongly discourage "learning programming" while doing OSDev. An operating system is the most complex piece of software you can imagine, and done in a more-hostile-than-average environment.

Again, some take that as a challenge to do it anyway, but personally, I feel it is just setting yourself up for frustration.
Every good solution is obvious once you've found it.
User avatar
Sik
Member
Member
Posts: 251
Joined: Wed Aug 17, 2016 4:55 am

Re: Is an OS a useless inspiration for learning programming?

Post by Sik »

Quoting this part from the OP just to prevent it from getting overlooked:
mac wrote:And this isn't necessarily implying learning to program while developing any OS.
Sounds like learning in the hopes to make an OS some day, not learning while trying to make it at the same time =P Definitely nothing wrong with that, though one may want to consider some other projects in the middle to tackle first (e.g. some parser for some file format, some software renderer for graphics or sound, etc.).

Also the first language I learned properly was C, so it's definitely doable. The problem is not how hard it is to learn (depends on one's mentality!) but how easy it's to spot when and how you're shooting yourself in the foot.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Is an OS a useless inspiration for learning programming?

Post by Solar »

Let's put it this way.

The chances that you'll ever work on OS code professionally are miniscule.

The chances that you'll ever "make" a hobby-project OS (as opposed to "working on one") are... less.

8)

Personally I'd recommend, learn programming, write userspace applications or servers or games or whatever, learn about managing a project, documentation, revision control, efficient algorithms, architecture, and all the related things that help you to become a competent and thorough software engineer. You can do all that without ever touching on the subject of OSDev, but it will help you in the trade. (Something that is not necessarily true the other way around -- things you learn in OSDev are not too seldom very specific to OSDev.)

If you're there, and bored, OSDev is certainly a way to sink lots of spare time. But a lonely one. ;-)
Every good solution is obvious once you've found it.
User avatar
~
Member
Member
Posts: 1226
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

Re: Is an OS a useless inspiration for learning programming?

Post by ~ »

At the OS level, you reach absolutely everything that there is to programming, so it all will become understandable if you always come from "OS land" and its tasks by default.

It's like being at the highest possible point. Of course there's much more to be done and learned (everything actually), but you just need to stay in the territory of those problems and starting out by solving and implementing the things that concern you personally the most, and the code that supports them to make them possible, and you will see advance.

I have taken around 12 years just to consolidate an OS with a basic text console for driving commands in a standard PC (any that has proper BIOS, PS/2 peripherals, VGA-compatible video, floppy and ATA disks). That doesn't mean that it's all I know. Actually it demonstrates you how difficult it is if you make an OS by hand all by yourself. I want to make it more advanced, with all the features that any OS has, and I want to learn to do it all by myself (I would get to understand the code of existing projects on my way). All I need to do is to make OS development my default programming task to keep learning. That's all. My learning speed compared to that of the rest of projects is meaningless if I am already doing the best I can and continuously trying to improve my methods.

See my current project status: http://devel.archefire.org/forum/viewto ... 4263&hl=en
YouTube:
http://youtube.com/@AltComp126

My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
Post Reply