General => General Chat => Topic started by: trekiej on January 29, 2019, 07:45:30 PM

Title: Wrapping Up
Post by: trekiej on January 29, 2019, 07:45:30 PM
I want to make a list of subjects that would take an individual from the basics of C, C++, or Pascal to working with OpenGL and Gui Apps.
Later to include Drivers and Libraries.
Any help is appreciated.
Title: Re: Wrapping Up
Post by: trekiej on January 30, 2019, 02:12:50 AM
I may have to go away for a while. I have to make a make a decision.
I am taking two classes now and hope to take three in the summer.
My plan is to get a 4 year degree and almost do not care what it will be.

I need to get away from the computer or tech. frenzy.
Title: Re: Wrapping Up
Post by: hth313 on January 31, 2019, 07:09:22 AM
I do not understand, it sounds a bit contradictive? First you want to go from basic C to other programming, then take a degree in anything and get away from computer and tech?

Regarding the computer stuff you mention, I would suggest that you some learn assembly programming, at least if you want to get into drivers and get your hands dirty. Not so much that you need to program in assembly, but it will get a better understanding on what is going on, especially when you have an idea of how C translates to assembly. You may also have some benefit from that going into libraries, as you may better understand reentrancy, tooling and various issues with it and how loaders work.

For GUI, people tend to use object oriented programming (MVC pattern), at least 20 years ago when I did it last, but it is not mandatory. Still, it can be a good idea to understand such principles.

OpenGL I do not know, is that like driver programming, optimize down to the metal using C, or something entirely different?

For some specifics, studying AROS or an operating system is probably a good idea, you can learn a lot from it. Implementing a Forth can also be a good thing to try. Google for Jones Forth, while some people think it is raved too much, it does have some merits for a start. Forth makes blows my mind trying to understand how to meta compile it...

If you want to understand programming better, it can be worth taking some classes in functional programming. It will be more high level, but it should may widen your view a bit.

Regarding your non-tech stuff, please elaborate a bit.
Title: Re: Wrapping Up
Post by: trekiej on February 01, 2019, 10:17:20 PM
How about a programming road map?
Title: Re: Wrapping Up
Post by: hth313 on February 02, 2019, 06:44:43 AM
Given that you have learned some C (and similar) and probably want to continue on that path to working with graphic related apps, and drivers and libraries, I would recommend start looking at some bugs in AROS. You will learn from looking at other people's code and you do not need to  design your own code. By understanding and fixing, you will learn from others, both from their mistakes and their good stuff.

It may sound boring and overwhelming, but it can really be a good start. By doing it you may find out what you want to do for your own projects.

AROS has a lot to offer in these areas, or you can write some real applications that fancy you. It is usually better to start small and there should be suitable projects in AROS that are graphic oriented, both high and low level. There are certainly drivers and libraries around.

Regarding programming, I would suggest that you get a little bit familiar with assembly language. You can try to write a small routine that is called from C, or study the compiler assembly output for some simple functions. 68k has a good and friendly assembly language. ARM should not be too hard either. This gives an insight to how C translates to machine instructions and should give a good understanding for what is going on. If you write your own, I recommend using an assembler source file rather than struggling with the inline assembler in C source.

If you want to go into more fancy programming and learn about more high level advanced techniques, then functional languages may be useful. Feel free to ask if you want to go in this direction. It will not help you write graphics or drivers so much, but it will give you a much broader understanding of the discipline and is very useful for writing large applications in a manageable way.

Most people writing large programs actually tend to use some object oriented language and (often) think that it is the only way to do it. Having done both object oriented and functional, I would suggest a functional language is better in most aspects. Except if you are looking for a job or want to write a GUI (though there are techniques for that too in functional language, if you really want to, it is just not as mature).
Title: Re: Wrapping Up
Post by: trekiej on February 02, 2019, 06:59:31 AM
Thanks, I will keep thinking about it.
Title: Re: Wrapping Up
Post by: Transdude1996 on February 03, 2019, 09:22:12 AM
If it helps at all I think all this info ( is probably relevant.
Title: Re: Wrapping Up
Post by: trekiej on February 06, 2019, 02:31:31 AM