Is OSDev a disappointing/discouraging hobby?
Is OSDev a disappointing/discouraging hobby?
Is OSDEV as a computer hobby astronomically difficult to break into as a programmer? I am learning about the Git version control, I will clone Python projects, use them, study it, and rewrite/change it for My own. Is it really that tough to break into as a programmer's hobby? I understand this may be just a short-lived, its ok, but I want to explore OSDEV someday.
First, I'm worried about the astronomical academic requirements I was told one needed. I want to teach myself if possible, in the quickest time possible.
I still feel a little discouraged. I know someday of you say your self-taught, but I'm still skeptical.
First, I'm worried about the astronomical academic requirements I was told one needed. I want to teach myself if possible, in the quickest time possible.
I still feel a little discouraged. I know someday of you say your self-taught, but I'm still skeptical.
- max
- Member
- Posts: 616
- Joined: Mon Mar 05, 2012 11:23 am
- Libera.chat IRC: maxdev
- Location: Germany
- Contact:
Re: Is OSDev a disappointing/discouraging hobby?
Define "as a programmer". There are different kinds of programmers today. Those that learned <insert high level language here>, never heard of what a register is and mostly don't care or don't have the elan to learn what the computer actually does; and those that also (want to) know what happens in behind, know to an extent what the compiler does, how the output looks and what it does, and always strive to extend that knowledge. There are much less of the latter.
There are some requirements if you want to achieve something with OSDeving. You should be or aspire to be programmer type two. You must understand that it has a steep learning curve and you will do a lot wrong until you finally do it right. It takes a long time, with that I mean years, to achieve what some on this board have achieved.
But though it's very hard, it's very much worth it. You will learn a lot about why modern or ancient systems do what they do. You'll learn a lot about the processor of your choice. In the end, you will be a better programmer because you learn about all the nifty little details. You will learn about reading standards, specifications, complying to these. Or you'll be an outlaw and do it your way, just because you can.
That's just my observation.
There are some requirements if you want to achieve something with OSDeving. You should be or aspire to be programmer type two. You must understand that it has a steep learning curve and you will do a lot wrong until you finally do it right. It takes a long time, with that I mean years, to achieve what some on this board have achieved.
But though it's very hard, it's very much worth it. You will learn a lot about why modern or ancient systems do what they do. You'll learn a lot about the processor of your choice. In the end, you will be a better programmer because you learn about all the nifty little details. You will learn about reading standards, specifications, complying to these. Or you'll be an outlaw and do it your way, just because you can.
That's just my observation.
Re: Is OSDev a disappointing/discouraging hobby?
It may be. Especially if you want too much too fast but aren't ready and have yet to learn many basic things (e.g. about C, assembly, CPU, other hardware, OS concepts). It depends a lot on you, on what you want, on what you know and can, on what you do and on how you do it. Are you giving up to early or neglecting documentation, debugging, googling/research? Are you asking for and getting help? How do you feel about your accomplishments, does every solved problem make you feel happy? What about when things don't go well? Do you actually see any point or find any fun in doing this? Etc.
Re: Is OSDev a disappointing/discouraging hobby?
I think, that it's debatable. If for one programming is a passion, then definitely yes, but it should be noted, that system programming is not so widely required. A lot of e. g. Java "enterprise" programmers get a lot of money with much less effort. That all depends on what programming is for you.Max wrote:But though it's very hard, it's very much worth it.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
- Alan Kay
- Alan Kay
Re: Is OSDev a disappointing/discouraging hobby?
No, I'm not the fast-paced type that gets impatient when things don't go his way.
I'm very sorry for being a spammer the whole time too. I just want to start somewhere, at wherever that might be.
Anyway, I'm not sleeping very good. It's after 4:30 in the morning over here for me. I need to get back to sleep, I will reply again soon.
I'm very sorry for being a spammer the whole time too. I just want to start somewhere, at wherever that might be.
Anyway, I'm not sleeping very good. It's after 4:30 in the morning over here for me. I need to get back to sleep, I will reply again soon.
- max
- Member
- Posts: 616
- Joined: Mon Mar 05, 2012 11:23 am
- Libera.chat IRC: maxdev
- Location: Germany
- Contact:
Re: Is OSDev a disappointing/discouraging hobby?
Not worth it in the sense of making money out of it, in fact it's very hard to find something that requires system programming knowledge. Yep, Java EE developers (in profession I am one, too) have it easier.Roman wrote:I think, that it's debatable. If for one programming is a passion, then definitely yes, but it should be noted, that system programming is not so widely required. A lot of e. g. Java "enterprise" programmers get a lot of money with much less effort. That all depends on what programming is for you.
But you don't ever do OSDev for money. You do it for knowledge.
Re: Is OSDev a disappointing/discouraging hobby?
The question, specifically, is whether it is a disappointing/discouraging hobby. As such, considerations of earning or job potential don't apply.
To me, OS development is very hard, possibly the hardest form of programming I can imagine (although I find compiler writing a close second). I probably wouldn't choose it as a job. But it is intensely more satisfying than work programming - or certainly anything I ever did. I don't have to worry about requirements - often irrational - from users, cost/benefit analysis, or deadlines.
A hobby should (IMO) be challenging and interesting (else why bother?). I'd say that OS development fulfils those criteria. And I'm never going to get to the end of it; it's not like collecting something where I might reasonably expect, one day, to achieve a complete collection. I know that I'm never going to achieve a complete OS - even if I were 50 years younger that wouldn't be a possibility.
So, looked at purely as a hobby, it's almost perfect. It's challenging, costs almost nothing, is open-ended, it doesn't matter if it's raining, etc. Disappointing or discouraging - definitely not; frustrating at times - sure, but then there is the delight of finally solving a knotty problem. There are always new heights - display your first characters, get you first keyboard input, read your first byte from a hard drive, write your first byte to a hard drive (then have to reformat it and recreate everything on it), write your first byte to a hard drive without destroying the file system, read and write your first packets from a network, implement a full ip/tcpip stack (still working on that one), and so on and so on; the sky's the limit.
To me, OS development is very hard, possibly the hardest form of programming I can imagine (although I find compiler writing a close second). I probably wouldn't choose it as a job. But it is intensely more satisfying than work programming - or certainly anything I ever did. I don't have to worry about requirements - often irrational - from users, cost/benefit analysis, or deadlines.
A hobby should (IMO) be challenging and interesting (else why bother?). I'd say that OS development fulfils those criteria. And I'm never going to get to the end of it; it's not like collecting something where I might reasonably expect, one day, to achieve a complete collection. I know that I'm never going to achieve a complete OS - even if I were 50 years younger that wouldn't be a possibility.
So, looked at purely as a hobby, it's almost perfect. It's challenging, costs almost nothing, is open-ended, it doesn't matter if it's raining, etc. Disappointing or discouraging - definitely not; frustrating at times - sure, but then there is the delight of finally solving a knotty problem. There are always new heights - display your first characters, get you first keyboard input, read your first byte from a hard drive, write your first byte to a hard drive (then have to reformat it and recreate everything on it), write your first byte to a hard drive without destroying the file system, read and write your first packets from a network, implement a full ip/tcpip stack (still working on that one), and so on and so on; the sky's the limit.
Re: Is OSDev a disappointing/discouraging hobby?
I did for both!max wrote:But you don't ever do OSDev for money. You do it for knowledge.
Re: Is OSDev a disappointing/discouraging hobby?
I think, it is definitely disappointing and discouraging. Can I say, my project has been finished or completed? Never. But we can safely say that for other projects.
Re: Is OSDev a disappointing/discouraging hobby?
This may be the most important problem you have. For OSDev you need to be prepared to deal with problems that are hard and time consuming to debug.SeanMc wrote:No, I'm not the fast-paced type that gets impatient when things don't go his way.
Re: Is OSDev a disappointing/discouraging hobby?
And that's my point. When did I say I get impatient? Complete opposite man. So, it wouldn't be So mich of a problem.Kevin wrote: This may be the most important problem you have. For OSDev you need to be prepared to deal with problems that are hard and time consuming to debug.
If I misunderstood, please understand.
Re: Is OSDev a disappointing/discouraging hobby?
And yes, I want to work with color and everything through bytes and bits. I do want to learn sometime, When I'm ready. I'm not too closed If I had to go back to school either. I just want an Associate's degree and nothing else. Are Wikipedia articles alone any good?
I am cheap, like a above poster said, it costs almost nothing.
I am cheap, like a above poster said, it costs almost nothing.
Re: Is OSDev a disappointing/discouraging hobby?
Although it is fashionable to decry Wikipedia, I would say that they make a very good starting point which should lead you to further avenues of research. But no single source is going to teach you everything.SeanMc wrote:Are Wikipedia articles alone any good?
Re: Is OSDev a disappointing/discouraging hobby?
Unless you are going to create a Linux clone, you are probably going to have to write your own hardware "drivers", so you are going to have to get used to reading through pages and pages of technical manuals (programming guides, spec sheets, driver source code, etc.), which can take quite a bit of time. Unfortunately, there's not a whole lot of options here.
The osdev wiki will get you started, but you'll probably eventually need to go off on you or own and find your own documentation. And finding that documentation is a skill unto itself.
I would recommend going back and learning how some of the early microcomputer CPUs worked. They are a lot simpler than today's CPUs, so it shouldn't take long to figure them out. Try starting with the 8086, or the MOS 6502 if you want an even simpler CPU.
If you are going to skip Assembly language, and go directly to C or some other traditional language, you can skip a lot of the CPU details, since these languages are cross platform.
Either way, just start with a simple hello world (tm) and then keep adding functionality.
EDIT: There are actually several posts in the forums about avoiding getting "burned out" while osdeving that you might be interested in. Just try to find a comfortable pace, where you don't burn yourself out, you don't neglect your friends and family and your other interests, and don't ignore it for so long that you forget everything you've learned.
Good luck.
The osdev wiki will get you started, but you'll probably eventually need to go off on you or own and find your own documentation. And finding that documentation is a skill unto itself.
I would recommend going back and learning how some of the early microcomputer CPUs worked. They are a lot simpler than today's CPUs, so it shouldn't take long to figure them out. Try starting with the 8086, or the MOS 6502 if you want an even simpler CPU.
If you are going to skip Assembly language, and go directly to C or some other traditional language, you can skip a lot of the CPU details, since these languages are cross platform.
Either way, just start with a simple hello world (tm) and then keep adding functionality.
EDIT: There are actually several posts in the forums about avoiding getting "burned out" while osdeving that you might be interested in. Just try to find a comfortable pace, where you don't burn yourself out, you don't neglect your friends and family and your other interests, and don't ignore it for so long that you forget everything you've learned.
Good luck.
Project: OZone
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott
Re: Is OSDev a disappointing/discouraging hobby?
Sorry, I misread. I missed the "not". It seemed to fit that you said you wanted to learn "in the quickest time possible".SeanMc wrote:And that's my point. When did I say I get impatient? Complete opposite man. So, it wouldn't be So mich of a problem.
Anyway, just start getting your hands dirty. The way you become a good programmer is simply through experience. Reading things up can support you, but it can never replace writing your own code and playing with it.
What also helps is learning from better programmers: Look at how they solve things, and if you're lucky, you can even get one to look at your code (or you could try joining a project of theirs and they'll have to look at whatever you contribute) and they'll explain what you can/need/should do better.