Hi, Maximilien. I really like the structure of the books. It starts with "what we will learn" and ends with "test yourself" and key takeaways. The structure can help the reader to really conscious in understanding the learning goals and validating the understanding.
I also always want to write a programming language book or some other technical topic book in general, which the writing process will I use as learning process for myself. But I always wonder in deciding the topic to cover. How do you decide the topics to cover? Do you start from following existing books or online documentation topic sequences? Or just write whatever topic you are interested first and structure the content afterward?
Thanks for your comment ! If you want to do it, just pick a language and start to write.
Writing is not easy but it becomes easier if you transform it into a habit.
In my experience I forced myself to write regularly like every day of the week. I usually worked one hour approximately by session.
By doing so you will see that you will achieve a lot.
Do not force youtself to write for one entire day then do nothing for a week.
Concerning the topics to cover I will recommand using a mind map to build the table of content. This is interesting because you can drag and drop sections easilly.
I would suggest first to define your targeted audience. Having this audience you can begin building the plan.
My approach was to teach notions progressively. Sometime I needed to rework the sections order. Use an editor that allow you to do that easilly like Lyx (love it).
Students generally love rituals and adding some introduction ritual/section and conclusion section is a plus.
Hope those recommendations will help you :)
Writing something is really a great way to make sure you understand something !
There is specific arabic word for it "Sadaqah" which means charity. Zakat is actually one of the Islamic pillar about charity to purifies. There is specific percentage or amount for different zakat. Zakat is the form of charity.
Maybe not enough to matter though. If the input space is sufficiently smaller than the hash space (e.g., you aren't hashing arbitrary strings, but instead just arbitrary English words) then the probability of any hash collision that also lies in the realm of interest is vanishingly small.
True, but that'd be very esoteric - a string input field that only accepts values from a dictionary. Although also if the input space was only these values but the input size was infinite you'd have a similar issue :P
It'd be esoteric for a system to enforce only containing values from a dictionary, but every sentence ever spoken by anyone alive fits in a 64-bit space by a wide margin. For real-world input you could still reverse most passwords uniquely given enough time.
It's actually kind of a fun problem -- the fewer bits you have in your hash the easier it is to find _any_ collision that gives access to the current system, but the harder it is to uniquely reverse the hash into a plausible password for stuffing into other systems.
I also just started doing Android in my work (previously mainly doing backend development). I see that the best resource will be just the Android documentation itself [1]. I can't suggest any specific book, because book about Android get outdated very quickly. If you like an online course, Udacity offers some Android courses [2] that is made by Google. As an additional note, once you have passed the basic hello world application and understand the basic concept of simple activity, lifecycle and intent, you should explore Android Architecture Component [3] which is required if you want to write a bigger more complex application. Last, for youtube video just see Google I/O videos or any other Android conference video, once you want to dig deeper for more specific topics.
From my own experience, if you are just getting started, I found "Computer Networking: A Top-down Approach by Kurose is a good introduction. It is top down, started from application layer and going down to link layer. That approach make an easier learning process because we can make sense different kind of application such as web/http, email, DNS, etc leverage the lower network layers to deliver its functionality.
I care a lot about my physical book too. I experienced receiving damaged books for several times. If it is not really bad, I just accept it. Returning it just waste my time. But if it is to bad I will request for refund. The worst case was when I purchased The Art of Software Security Assessment. The books is really heavy, but Amazon packing in it very badly and the package torn open, then I think the local post office repackage it using some plastic bag. At the end almost all pages of the books folded badly. I initiated a refund and sending the book back to amazon. The book was around S$70 and the postal cost to return it to US from Singapore was almost S$100 more expensive than the book price. Amazon refunded the book price and also the postal cost. But indeed it is a hassle. As comparison, Bookdepository always pack the books very well and secure. I have never had any experience of getting any edge folded book at all. Unfortunately the price is still not as cheap as at Amazon. It is suck but for now there is no ideal alternative.