Page 1 of 1
Is an OS a useless inspiration for learning programming?
Posted: Thu Jun 22, 2017 7:28 pm
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.
Re: Is an OS a useless inspiration for learning programming?
Posted: Thu Jun 22, 2017 7:31 pm
by Geri
if you continue your logic for days, you actually can demotivate any activity in any profession
Re: Is an OS a useless inspiration for learning programming?
Posted: Thu Jun 22, 2017 8:07 pm
by mac
What logic are you talking about?
Re: Is an OS a useless inspiration for learning programming?
Posted: Thu Jun 22, 2017 10:16 pm
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.
Re: Is an OS a useless inspiration for learning programming?
Posted: Fri Jun 23, 2017 5:49 am
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.
Re: Is an OS a useless inspiration for learning programming?
Posted: Fri Jun 23, 2017 6:55 am
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.
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.
Re: Is an OS a useless inspiration for learning programming?
Posted: Mon Jun 26, 2017 11:17 pm
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