Need help Does anyone recommend a good book or website to learn C

NathanBelomy

New Coder
Dec 13, 2019
16
2
4
I'm trying to write an operating systems backend. It's tempting to use Linux but I'd rather build it custom.
 
D

Deleted member 205

Guest
The C programming language, is what I used when I learnt C I find it quite good.
As @notcori said, The C Programming Language by Brian W. Kernighan and Dennis Ritchie.

I myself have this Book and I'm currently reading through it just now. While it's now quite an old Book(First Edition in 1978 and Second Edition in 1983[I think...]), it still holds up well in today's 'Modern C'. It covers practically everything that you need to know, including Loops, Functions, Pointers, Arrays and some of C's Standard Libraries. When you're done reading the Book, it can serve well as a great reference in case you're stuck.

Another C Book that I have is C Primer Plus by Stephen Prata, Another good Book on C. This was what I got before I got The C Programming Language. It's how I first got started in C. It starts off really simple but overtime, starts to get a little bit more complicated. I did stop reading it as soon as I got to Pointers as I found them too confusing though.

Maybe consider picking up the two Books I've listed above. Both are great for learning C and as a reference Book in case you forget something.
 

meetdilip

New Coder
Apr 12, 2019
20
10
3
There is a very simple book which we used. C by Balaguruswamy. It is from some international publisher. Give it a try.
 

NAAZANIQUA

New Coder
Apr 4, 2019
25
10
3
USA
www.fusioninformatics.com
Best Sites to Learn C Programming Online
  1. CProgramming.com. Here Newbie programmers have all the stuff they need to learn C. ...
  2. The GNU C. Programming Tutorial. ...
  3. MyCPlus.com. The website name suggests that it makes you learn C++ language. ...
  4. CProgrammingExpert.com. ...
  5. C Language Tutorial. ...
  6. C Programming – University of Strathclyde. ...
  7. StackOverFlow.
 
Jun 26, 2019
72
19
8
Are you looking to write a system that deals with the hardware? Might be worth looking into embedded systems and lightweight OSes - FreeRTOS (https://www.freertos.org/) comes to mind. There are many things to consider in the design of modern OSes: thread and process scheduling, thread/interprocess communication, device drivers for hardware, thread and process memory spaces to name a few. There are some other OSes you could look to for inspiration (https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs , https://en.wikipedia.org/wiki/MINIX , https://en.wikipedia.org/wiki/MenuetOS) and I think at one point there's a layer that needs to communicate with the hardware at its level (reading/writing to hardware addresses). It's a deep deep rabbit hole.
 

NathanBelomy

New Coder
Dec 13, 2019
16
2
4
I don't get all the open source projects. Do people do it to learn coding or help with the project and have a job so they don't care about money? I only plan on open source projects to help with development if I can't do all the work myself. Like I might later help on a project I use, once I'm more fluent with programming. But I first want to make some money off apps.
 
Jun 26, 2019
72
19
8
One way to think about open source software these days is that recruiters and other developers can use it to gauge your knowledge as well has how you communicate. I think some recruiters are using GitHub to look for potential candidates, and I think some developers look at having contributions to open source favourably: I think it shows initiative.


It was definitely strange to me at the time when I first heard about linux, being a free operating system. There’s a documentary on YouTube called Revolution OS
which may give you some insight to how open source was thought of back in the day. These days larger projects (Ubuntu, docker, Jenkins) have open source offerings with the thought of upselling to provide enterprise support, which is where most of the income is expected to be. Having access to source code is only part of the process: you still have to provide the hardware and expertise to be able to build and understand how to modify a project - build processes for some open source projects are crazy. If you can show that you’ve contributed that’s a pretty big plus.


When you start charging for software you’ll typically have to provide support. Apps in the Apple store or Google Play Store give you a framework to develop something within their ecosystem, but you have to stand out somehow.
 
D

Deleted member 205

Guest
I don't get all the open source projects. Do people do it to learn coding or help with the project and have a job so they don't care about money? I only plan on open source projects to help with development if I can't do all the work myself. Like I might later help on a project I use, once I'm more fluent with programming. But I first want to make some money off apps.
Free-Software in my opinion, is a generally hard-to-explain concept.

People create free-software because they want to encourage people to get into programming and development in many ways; either it be just for the learning-experience or to make something useful that can benefit many people.

The purpose of free-software is as described by the GNU Project, founded by Richard M. Stallman in 1983. At that time, when it was founded, Stallman based free-software on the four principles:
  • The freedom to run the program as you wish, for any purpose (freedom 0).
  • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help others (freedom 2).
  • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Free-Software is meant to give millions of people across the world, the freedom and rights to modify the source-code to their liking, add on new bits to software and even help fix any issues with the software that it's maintainer may have not spotted.

I would encourage you to read more about free-software on both Wikipedia and the GNU Project website( ).
 

NathanBelomy

New Coder
Dec 13, 2019
16
2
4
I think you can pay for marketing on Apple and Google app stores. I had some music up through a service, but you have to pay annually. I think you can contact them directly to arrange terms. Which is what I'll do next time.
 
D

Deleted member 205

Guest
NathanBelomy said:
I think you can pay for marketing on Apple and Google app stores. I had some music up through a service, but you have to pay annually. I think you can contact them directly to arrange terms. Which is what I'll do next time.
First of all, to get onto Apple's store, you need to pay about £76($99USD) every year, just to develop apps for Apple. For Android, it's just a one-time fee of £19($25USD). So for Apple, you definitely want to make sure that you have a source of revenue as you'll be paying a fee every year. Without any revenue coming in, you won't be able to pay for that fee unless you have a job at a business which earns you tons. For Android, you don't have to worry about fees other than Google revoking your license to develop apps(This won't really happen unless the app is insecure, untrustworthy and violates privacy laws of COPPA, GDPR etc.) and Google taking a 30% cut of your profit(Apple is the same).

That last bit leads me onto my next point: the profit-cut.

Both Apple and Google take 30% of your profits. Which, has garnered a lot of criticism as developers are arguing that that much shouldn't be taken. Because if you think about it, Apple and Google are conglomerates(They have many subsidiaries, products and revenue-sources). Unless you're a business or some sort of special organization, trying to arrange terms and profit-cuts all by yourself, will not work at all, again, unless you're some sort of business or organization or have a special reason for negotiating these terms. So as a result, I wouldn't bother trying.