Page 1 of 2

Personal motivation problem

Posted: Tue Mar 16, 2010 6:45 pm
by VolTeK
it would seem, my mind has just shut off the passage to programming and operating system development. now one half says go into development, i saw mac os and how it was developed in C and other things. gave me some motivation to learn assembly and C, even tho, ive almost fully mastered asm (thank you guys). but the other half says, its not worth spending the time on it, but i want to , i need help. i know this cite isnt my psychologist. but i know u guys have been there to, and maybe could tel me how u got through it, what did u do. id love to get back into this art, but at the same time, my other half says its not worth it. and i know many of you could careless, and say this site is to help give out advice on software, not my psychological problems

Re: Personal motivation problem

Posted: Tue Mar 16, 2010 7:03 pm
by KotuxGuy
Well, what I did was complete a lot of smaller projects, then handled a big, non-OS one( my still in progress game, OpenBlox ).

Re: Personal motivation problem

Posted: Tue Mar 16, 2010 7:46 pm
by NickJohnson
I find the easiest time for me to do a lot of OS programming is when I'm supposed to be doing something else. Conversely, if I convince myself that I should be working on OS programming, that is what I am least likely to do. Do you want to program or do you want to try to program?

Re: Personal motivation problem

Posted: Tue Mar 16, 2010 8:20 pm
by pcmattman
I personally have a variety of other non-OS-related projects (a game, and a couple other applications - some of which I have actually made releases of in their respective communities) so that when I end up feeling like I can't work on low-level code anymore I have a fallback. Usually working on the higher-level code knocks out the lack of motivation, and as an added bonus also helps build my skills for later use.

There are times however where you just need to stop writing code. Seriously. Take a break, play a game, or even better - turn off the computer altogether and do something that doesn't relate to the computer at all. It's amazing just how much of a difference that can make.

Re: Personal motivation problem

Posted: Tue Mar 16, 2010 8:34 pm
by osdnlo
I just play my guitar. Just learned a new song. The Funeral by Band of Horses. I know, I'm awesome.

Or, I play nes super mario bros. I don't know why, but it prepares my mind to think analytically.

Or, I listen to pandora. I have a few really custom channels that I can pick and choose from that help direct my mind in whatever direction is needed.

And, crying helps. The USB driver has made me squirt a tear or two. lol

Hey, have any of you ever cried because of programming?

Re: Personal motivation problem

Posted: Tue Mar 16, 2010 8:47 pm
by piranha
I do not cry because of programming, mostly because the main to emotions I feel are "**** YES! SUCK IT! NOW WHAT!! I've just BEASTED on intel's f'ed up specs! HAHAHAHA!" or "what, the, **** is wrong with this damn code!". Occasionally it's " :D " though, which is nice.

I tend to play guitar if I feel like it, or watch House/Star Trek/Scrubs/Family Guy/etc

-JL

Re: Personal motivation problem

Posted: Tue Mar 16, 2010 11:12 pm
by ~
When it happened to me, it just meant that I was needing easier options to make simpler code without sacrificing any functionality at all.

It also meant that I was going nowhere in my attempts to writing a kernel. However I don't get discouraged, I have a whole life to do what I enjoy which is learn all kinds of real-life algorithms.

Just recently then I realized that I had gone too far away from my roots of knowledge and resources that allowed me to first learn programming. I remembered that I was much more productive using Windows 9x, DOS and all of the old hardware/software than using Windows XP.

So I went back installing Windows 98 in a machine and with a provisional hard disk with the first version of Windows 95.

It must be a matter of you not being able to advance. You might have more knowledge than before, but now it's time for you to learn some new things, or you won't be able to keep advancing.

I was in a situation in which I wasn't clearly able to understand how the hardware worked, so I started to figure out how to "talk" to the machine and so it showed me back the low level values. It is as if you need to know how a piece of hardware works and then you start asking the computer by programming it step by step. This is how I managed to make an almost perfect (almost as much as BIOS itself) ATA/ATAPI detector, it seemed something difficult and tedious at first, but with this method I managed to solve it step by step, had more fun I could have expected, and it led me to develop my LowEST project and then I'm currently trying to develop with reasonable success a compiler for a half C/half assembler language to make the most bulky and less valious parts of assembly an automatic process (things such as coding ifs, loops, switch, etc.).

I'm learning now and not blocking because I am doing things that adjust to what I'm currently make, and as recommended by some people on the Internet, I'm also at the edge of my capabilities to keep learning, advancing and at the same time discovering how to make working stuff.
-----------------------------------------------

What help do you need? Remember that programming is just like math, and the computer is like a logical calculator.

You cannot expect to solve a complex math formula from the more complex elements it is made of, but instead you need to start from the smaller ones. The very same applies to programming. When you have some small working code that is capable of being reused even in a "full rewrite", then things seem to start becoming clearer and falling in place for themselves.

The smaller components in my case were to make snippets of the simplest things, having them working and it keeps me learning and I know that each snippet that I manage to get working is an earning (things like turning on speaker, handling hard disks, CD-ROM, etc., from the command line).

One of the things that helped me was finding such way of experimenting with hardware and algorithms without actually having to write bunches and bunches of code over and over again, thus running out of time, energies and enthusiasm.

Now I can do many things (after reading the corresponding standards, datasheets, documents, etc.) without actually writing code but only when I exactly know how hardware will react. For instance, I can turn on the speaker like this (from DOS using LowEST modules):

Add value 3 to set bytes 0-1 to 11b in this port to turn on speaker:

Code: Select all

ioadd byte 61h 3
I have seen that I can alter the frequency just after 2 writes of port 42h if I remember correctly:


Write values 42h and 5 (I think it means 542h) for the speaker divisor:

Code: Select all

iowv byte 42h 42h
iowv byte 42h 5
And can turn it off like this:

Set bits 0-1 of port 61h to 00b:

Code: Select all

iosub byte 61h 3

The same applies to ATA drives. I can control them manually and learn how they actually react so I am not supposing anything but I'm seeing how the computer "tells" me before my eyes how it is reacting to my commands. It is what I now do to avoid writing bunches of code and hours of debugging, and in this way my hardware code is much more accurate and when I write some, it is surprisingly compact and straightforward, even when it takes into account several workarounds for different devices.

As you can see, maybe what you need is to learn new things that are just above of your current ability (meaning that you can sort out those new things with what you know already, and combining them in a new way to master that new knowledge) and easier and more reliable ways to write long-lasting code.

Re: Personal motivation problem

Posted: Wed Mar 17, 2010 3:43 am
by osdnlo
That is like washing the dishes before you put them in the dishwasher, isn't it? I'm sure a highly effective way to go about writing drivers though. Well, one's with IO ports that is.

Re: Personal motivation problem

Posted: Wed Mar 17, 2010 4:39 am
by JackScott
Actually, speaking of cleaning the kitchen, I find that's the best way for me to clear up fog in my mind. Clean kitchen, clear mind. At least for me.

Re: Personal motivation problem

Posted: Wed Mar 17, 2010 5:15 am
by osdnlo
That's a good idea actually. You'd make the people you live with happy, plus I can see how that could help clear the mind. Good suggestion. I know what you mean. Sometimes, I hand wash my more delicate clothing in the tub, maybe 10 to 15 items, usually takes like 20 minutes and when I am done, I always feel completed. Like when you exercise or labor hard for a while. Something about working with your hands, using all your senses at once, it makes you feel good when you're done.

Re: Personal motivation problem

Posted: Wed Mar 17, 2010 5:16 am
by VolTeK
Thanks guys, it just hit me when i looked at what my goal is, to build a modern os, 32 bit, atleast "a" file system. but when i looked at, (well actually i knew this before) about how im going to have to write a floppy disk/hard disk controller, the simple easy-to-say read file, has more to what it means. a lot more. im just trying to jump back into how i use to do it. hours and hours looking at a screen damaging my eyes :) but all for a good purpose, to accomplish building an os, and accomplish more then the guy at my high school is payed to do lol. but no seriously, ever since i installed windows 7 ultimate on my machine (xp - ultimate = erase everything) i forgot (im stupid as you all know) to keep my data, lucky me it was just 16 bit beta file system, and kernel work. In my next attempt i plan to just learn 32 bit completely and jump right into it.i know what im in for, i know it isnt going to be just a 6 month project. but ever since i saw mac os x, i read up on all of the systems. and it looks greats, id hope to make just a small margin of gui of what they have, but on my pc. i know it wil be months to maybe even a year or 2 before i get into that. im just glad ive got a forum here to back me up when i need the motivation or how to get it,

Thanks guys, and dnt wrry i read everything, so ~ your paragraphs didnt go to waste lol

Re: Personal motivation problem

Posted: Wed Mar 17, 2010 5:28 am
by osdnlo
I took a psychology class in college a few years back, and it involved stress management. Things we talked about were anything that could take your mind off the problem for a long enough time that you would be able to calm down. People suggested all sorts of things like exercise, solving math problems, some kind of art, etc. What works for you is the question you should be asking yourself. ;)

Sorry you lost your code. :(

Re: Personal motivation problem

Posted: Wed Mar 17, 2010 12:22 pm
by Combuster
NickJohnson wrote:I find the easiest time for me to do a lot of OS programming is when I'm supposed to be doing something else. Conversely, if I convince myself that I should be working on OS programming, that is what I am least likely to do.
Living proof here. :wink:

Re: Personal motivation problem

Posted: Wed Mar 17, 2010 3:47 pm
by KotuxGuy
cat /dev/urandom also works.. :lol:

Though anyone who does that will want to do anything else..

Re: Personal motivation problem

Posted: Wed Mar 17, 2010 4:27 pm
by VolTeK
lol.


its ok about the code, i had a windowing system in 16 bit mode set for TUI so thats not really all that great, but now that i "have" to (well im telling my self to) jump into 32 bit, and give things a go. i know what to expect, and i cant stay in 16 bit of my life, even though its great to work with, id like to experience it all, and make the best of it. id like to spend alot of time working on just the kernel for a change, instead of setting up a program that runs the next step.

i think in my spring break, ill bring out that fasm assembler, and learn C while im at it