This sounds like a massive undertaking. The breadth and depth both seem huge. Though I suspect that the prerequisites for the intended audience could probably be a barrier, this will be helpful to thousands (if not millions) of people around the world.
The daily or bi-daily streaming and starting from scratch sounds like a kindred idea to Casey Muratori's long running Handmade Hero gamedev streaming project. Maybe not entirely by accident - it seems these guys have some common professional history.
> My goal with Bitwise is to show that these things can be done much more simply and quickly than people realize if we strongly favor simplicity over marginal gains in feature completeness or performance.
This is a refreshing way of looking at the world. One of my principles is to always strive for simplicity when creating, but i've never given much thought about how it applies to the fundamentals of existing creations or ideas when learning.
In retrospect, I've learned many thing that I previously thought too complex to understand. The complexities tend to dissolve when you realise they are mostly just extra distractions emerging from the pressures of engineering the thing... distractions that you probably find yourself inventing all over again once you've assimilated the core idea.
My favorite "toys", by far, are those happy, cheerful, friendly implementations of famous problems, that make for a fun but educative learning experience.
It may not be as huge in scope, but allow me to plug my own initiative:
I set out to replicate the joy of reading through code listings in old magazines, and present seemingly-complicated problems in a simple and concise way.
Some of the problems I will approach in the future are text and image compression, compilers, chains, http servers, and so on.
Pretty cool idea (though I'd personally tone down the intensity of the yellow background, and use a higher contrast font color... whoever came up with the "black is bad" meme will be really sorry when they get older and their vision deteriorates!).
One story from "back in those days"... I worked at a small computer store in 1980/1981, and one of my fellow co-workers submitted a program to one of those magazines, and they printed it!
Well, they mis-printed it, and then mis-printed the correction he sent in :-)
This looks great. Will you be writing about or discussing your stack machine implementation on the blog or elsewhere then? The annotations are nice but I would be interested in hearing/reading more. I've got it bookmarked. Cheers.
> and present seemingly-complicated problems in a simple and concise way.
I think concise is underrated, not terse necessarily, just minimal code devoid of distracting optimisations and architecture. It's so nice to come across those < 100 line _working_ implementations that you can focus on and internalise as a working model of the algorithm, I've found Rosetta Code a good place to find these (of varying quality though).
I'm not from that era of code listings in magazines but I really like idea and format of your site, earmarked for some bedtime reading :) please write more.
>> This collection attempts to provide recreate that same feeling ...
I think the word "provide" should not be there.
Anyway, I think this is a brilliant idea. I don't mind the yellow background but I think the main text font could be darker for better visual contrast. A favicon won't hurt too.
Will all of the course video and discussions be available for download from YouTube permanently? I am very interested in following along with my 10 year old daughter, but we will need to move at a much slower pace. If we can still access the course video a week or two late that would be ideal.
My daughter knows how to code in python, but not C or C++. I will have to teach her that on the side which will slow us down considerably. She is really motivated to learn though. We are both excited about your course.
Yes, they'll be available permanently. I talk about this in the FAQ in the repository, if you want to check it out.
I'm afraid this is going to be far beyond any 10 year old! I assume a pretty high level of intellectual development and ability to learn abstract ideas quickly, even if the formal prerequisites are minimal.
Understood. We are going to follow along anyway but at a much slower pace :-). My daughter is highly motivated to learn. As long as she remains interested I will do my best to lower the barrier of entry by teaching her all that I know about C programming. I will work through all of the exercises with her and we will spend as much time on them as we need to. We are not concerned about how long it takes.
What you are doing with your time is a gift. Thanks!
MSVC only received C99 support starting in Visual Studio 2015 and even then it's only partial (but enough for us). Actually, we'll probably use anonymous structs and unions, which are technically a C11 feature, but have been supported by all the major compilers for a long time before C11.
23 comments
[ 3.0 ms ] story [ 61.4 ms ] threadI will check it out. Wish you all the best!!!
This is a refreshing way of looking at the world. One of my principles is to always strive for simplicity when creating, but i've never given much thought about how it applies to the fundamentals of existing creations or ideas when learning.
In retrospect, I've learned many thing that I previously thought too complex to understand. The complexities tend to dissolve when you realise they are mostly just extra distractions emerging from the pressures of engineering the thing... distractions that you probably find yourself inventing all over again once you've assimilated the core idea.
It may not be as huge in scope, but allow me to plug my own initiative:
https://www.latenightsnack.io
I set out to replicate the joy of reading through code listings in old magazines, and present seemingly-complicated problems in a simple and concise way.
Some of the problems I will approach in the future are text and image compression, compilers, chains, http servers, and so on.
I would love if you had a look!
One story from "back in those days"... I worked at a small computer store in 1980/1981, and one of my fellow co-workers submitted a program to one of those magazines, and they printed it!
Well, they mis-printed it, and then mis-printed the correction he sent in :-)
I have toned down the intensity of the yellow background, and increased text contrast. I hope this improves!
I hoped to compensate by including plenty of links, and making it easily modifiable. Maybe I should include a comment system?
What about asking questions via GitHub issues? :)
I think concise is underrated, not terse necessarily, just minimal code devoid of distracting optimisations and architecture. It's so nice to come across those < 100 line _working_ implementations that you can focus on and internalise as a working model of the algorithm, I've found Rosetta Code a good place to find these (of varying quality though).
I'm not from that era of code listings in magazines but I really like idea and format of your site, earmarked for some bedtime reading :) please write more.
I have a few ideas (http server, text compression, blockchain) but I'd like to hear some from you.
Any preference on what you would like to see in the future?
I think the word "provide" should not be there.
Anyway, I think this is a brilliant idea. I don't mind the yellow background but I think the main text font could be darker for better visual contrast. A favicon won't hurt too.
I toned down the color theme, and increased contrast. I did not cache-bust, so you might have to clear your cache. I hope this makes it better!
My daughter knows how to code in python, but not C or C++. I will have to teach her that on the side which will slow us down considerably. She is really motivated to learn though. We are both excited about your course.
I'm afraid this is going to be far beyond any 10 year old! I assume a pretty high level of intellectual development and ability to learn abstract ideas quickly, even if the formal prerequisites are minimal.
What you are doing with your time is a gift. Thanks!
Question - Why did you choose C99 and not C11 as the standard ?