Quote Originally Posted by Tim Leitzke View Post
C has to be compiled specific lye for each platform AND tested/avoid non standard headers(as I am still new, I am guessing this is the stuff at the very like like studio.h) & file types.
I assume by "studio.h" you mean "stdio.h".

Anyway, one basic technique is to build your program (compiler, link, test) with several distinct compilers, even on the same target platform. Although that doesn't give a guarantee of catching problems with standard headers (any more than building for different platforms does) it does increase the odds.

Another basic technique is to configure your compiler to emit maximum warning levels (use of command line options, build options in a project, etc). The methods are compiler (and IDE, if you use an IDE) specific. The thing to remember is that virtually ALL C compilers are configured at a minimum warning level (i.e. the compilers can give indications of more problems than they do by default). This is a sad result of lazy C programmers lobbying compiler vendors to do it that way.

Quote Originally Posted by Tim Leitzke View Post
And, I did try looking into a book, but was very confusing since it just gives examples without explaining the smaller parts.
I think it's the other way around, actually. Most books give small examples that explain one or two points (language or library features, etc) but few explain the gotchas that arise in practice when several of those points come together and interact.

Quote Originally Posted by Tim Leitzke View Post
,I think I'll try using online, like I did with python, and learn as I need.
Python is actually a bit different, since almost everything associated with it originated online.

With C, you will probably need to find some decent textbooks, compiler documentation (bear in mind that some compiler vendors have a penchant for documenting their vendor-specific extensions as standard - by which they mean "standard for their products", not standard as in "ISO standard compliant), work through examples, try to do real things with code, etc. As with any learning the mix of reading, thinking, and "hands on" depends on your learning style.

But learning as you need is a reasonable idea. Despite some uninformed claims, C is actually a pretty large language/library combination and it takes time to learn.

Quote Originally Posted by Tim Leitzke View Post
Learned basic to intermediate(with gui) in about half a month.
It'll probably take longer than that with C.

GUI is not part of standard C at all - people who do GUI with C typically make use of third-party frameworks or libraries and the authors of such libraries typically rely on a fairly robust understanding of the basic parts of standard C. If you care about portability of your code, there are typically porting concerns associated with your chosen GUI framework/library. Some libraries are system specific, so code using them can't be easily ported. Others are designed with portability in mind, but have specific gotchas that vary between host systems, compilers, standard libraries, etc.

GUI aside, there are distinct differences between what someone with Python experience will call "intermediate" and what a person experienced with C will. They are different languages, designed for quite different purposes. Some of the things that are easy in Python are quite easy in C. And vice versa. One rather poor way of putting it is Python supports "high level" techniques, and C supports "low level" techniques - the skills needed overlap, but differ substantially.