Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Contents List for The Book ? #69

Open
nelsonic opened this issue Jan 16, 2017 · 14 comments
Open

Contents List for The Book ? #69

nelsonic opened this issue Jan 16, 2017 · 14 comments
Labels
enhancement New feature or enhancement of existing functionality question A question needs to be answered before progress can be made on this issue

Comments

@nelsonic
Copy link
Member

nelsonic commented Jan 16, 2017

It's clear, cause you're here, that you're curious
to know if the claims in "the book" are spurious,

let us put your brain at ease from the mental tease
show you the "mind palace" and give you the keys!

The "MVP" plan for "The Book" it to create a contents.md file that lists the tutorials in order
which people can then read through ...

  1. General Background: https://github.com/dwyl/start-here
  2. Creativity (is where it all starts!): https://github.com/dwyl/learn-creativity help wanted
  3. People-first: https://github.com/dwyl/learn-user-experience-testing help wanted
  4. Google Apps Certification: https://github.com/nelsonic/google-apps-certification get knowledge and skills you can use to get a job in your first week!
  5. History of Internet: TBD
  6. Markdown: http://www.markdowntutorial.com/ (learn markdown so you can communicate!)
  7. Browser tools: https://github.com/dwyl/learn-web-browser-tools help wanted
  8. HTML: https://github.com/dwyl/learn-html5 help wanted
  9. CSS with Functional CSS -> Tachyons https://github.com/dwyl/learn-tachyons
    also: http://adamschwartz.co/magic-of-css/
  10. Git & GitHub: https://github.com/NataliaLKB/learn-git-basics
  11. JavaScript: https://github.com/dwyl/learn-javascript [Much Updatage Require]
  12. Goodparts: https://github.com/iteles/Javascript-the-Good-Parts-notes
  13. FP JS -> don't need to know that much here just: Enlightenment on Higher-Order Functions (components) learn-redux#40
  14. TDD: https://github.com/dwyl/learn-tdd
  15. Istanbul: https://github.com/dwyl/learn-istanbul
  16. Basic Web App Using Just HTML+CSS+JS (NO Server or Front-end Framework)
  17. Deploy your app using Heroku! https://github.com/dwyl/learn-heroku
  18. Continuously Test your code using Travis-CI: https://github.com/dwyl/learn-travis
  19. Continuously Deploy your App/Project to Heroku using Travis-CI ⬆️
  20. Progressive Web Apps: https://github.com/dwyl/learn-progressive-apps
  21. Security: https://github.com/dwyl/learn-security
  22. Node.js: https://github.com/dwyl/learn-node-js-by-example
  23. Crypto: Why? learn-cryptography#1 (comment)
  24. Extend the Basic Web App above to include a server
  25. Intro to Databases: https://github.com/dwyl/how-to-chose-a-database
  26. PostgreSQL: https://github.com/dwyl/learn-postgresql
  27. Extend the app to save data to the database.
  28. Hapi.js: https://github.com/dwyl/learn-hapi (obvs)
  29. Build a small app in Hapi.js ... thinking instagram clone here... but may need DB first...
  30. Redux https://github.com/dwyl/learn-redux mini-todo-list in Redux - just to understand Frontend State Management.
  31. WebSockets for realtime: https://github.com/dwyl/learn-websockets
  32. Elm: https://github.com/dwyl/learn-elm
  33. Build an Elm App that uses the "Back End" (API) we built before in Hapi by using Content Negotiation.
  34. Build timer app using Elm, Hapi & PostgreSQL
  35. Other Databases/Datastores which are useful to know/use: LevelDB
  36. Redis: https://github.com/dwyl/learn-redis
  37. Elasticsearch: https://github.com/dwyl/learn-elasticsearch
  38. Visualisation with Kibana: https://github.com/dwyl/learn-kibana
  39. Exercise your Hapi, Socket.io and Redis knowledge to build a chat application:
    https://github.com/dwyl/hapi-socketio-redis-chat-example

Now that you know Node.js & Hapi you can build anything from Trello to Tinder!

But why stop there...? -> Bonus Level: Advanced Topics in Web Development

Scalability

  1. AWS Lambda and the Serverless Architecture: https://github.com/dwyl/learn-aws-lambda
  2. Deploying to Amazon Web Services Elastic Beanstalk: https://github.com/dwyl/learn-amazon-web-services
  3. Image upload mini-project with re-sizing using image magic
  4. Elixir: https://github.com/dwyl/learn-elixir
  5. Phoenix: https://github.com/dwyl/learn-phoenix-web-development
  6. Blockchain: https://github.com/dwyl/learn-blockchain
  7. APIs https://github.com/dwyl/learn-api-design

Now you know everything you need to re-build the NHS Digital Services
(and all other web-based applications for that matter) and make the world better. ❤️ ✅

@nelsonic nelsonic added enhancement New feature or enhancement of existing functionality question A question needs to be answered before progress can be made on this issue labels Jan 16, 2017
@iteles
Copy link
Member

iteles commented Jan 16, 2017

@nelsonic whoa, this thing is half written already!! <3

@ghost
Copy link

ghost commented Jan 17, 2017

How long will it take a beginner to learn all of this?

@mitchellporter
Copy link
Member

This looks awesome 👏🏻🎉

@nelsonic
Copy link
Member Author

nelsonic commented Jan 17, 2017

@Eduardcodes great question! 🍭
I wish we had a precise/guaranteed answer... 😞
the amount of time will entirely depend on the person. 🦄
Some people have berry busy lives, these people should budget accordingly. 📲 ⏳
We intend to re-work some of the content to be even simpler ♻️
and release a video for each tutorial which will take aprox 30mins to watch. 📺
So let's say 2 hours per tutorial/chapter if you try the examples. T2h
And another 2h if you get stuck and need to ask a question.... T4h
So if you do one per day it would take you approximately 6 weeks. 📆
If you have more "free time" (e.g: because you are "between jobs"),
you could do two tutorials per day and be *finished in less than 4 weeks! 😮
One of our goals for 2017 is to make it even easier to learn independently using our tutorials, 👩‍🎓
ironically, helping people to be more independent 💃
will be achieved by improving the online community ("features") 💬
not by people being individualistic! ⛔️
If you would like to help us with that, simply ask more questions ❓ 🆘
and participate in the online discussions on the existing issues!! 🔍 🗣 ❤️

@YvesMuyaBenda
Copy link

Cool book!

One definition of creativity is that it can be roughly described as relating concepts in mind; so then, the web developer who brings together a wide variety of components to realise an app idea can be said to be manifesting creativity, such as yourselves! Another aspect is the top down thinking that takes an idea and resolves it down to the components, but for me, that depends upon how familar one is with the components and how they relate in the first place. And yet another aspect is conceiving the app "idea" in the first place. Now, I suspect that the first two ideas are crucial for the third, and perhaps are a better sequence, In the Founders and Coders application process, after learning the basic elements of Javascript, the person is advised to go to Codewars to practice the basic elements in combination, and that was super useful because it gave a strict critera for success--that is, when you have reached level five kyu than you have a minimal grasp of the elements of Javascript as they combine to solve small algorithmic problems which require little domain knowledge; likewise, given whatever components it might be useful to construct a sequence of exercises within an escalating difficulty, which has as its purpose the combination of the elements, where the components are tightly scoped, with additional components being added--like how some folk have created development environments in which only certain parts of a langauge are accesible at a given stage, and the person learns to play with what is given, before adding complexity; that is to say, the person's mind becomes famililar with combining the given components to some end. So to summarise, the thought in my mind vis-a-vis creativity is that within a narrowing of the scope of the components the person is challenged step-by-step within projects and tasks which require combining the components, and after a person is familiar with the said process, they would be better placed to deconstruct a given idea relative to some set of components, or to think of ideas that are reasonable.

@YvesMuyaBenda
Copy link

Too, on the topic of creativity within the definition of assembling concepts, one of the themes of programming, which I think is useful generally, is that, in order to build such and such one has to on some level, within some conceptual langauge (obviously including programming langauge), describe it or think it through with enough precision (for example TDD asks for explicit concrete examples of behaviour) while finding ways to manage the complexity of details, so one can guess that something like the practice of something like TDD would help a person think in enough detail to construct a given object--kind of how like Steve Jobs spoke of programming teaching a person to think; in part, it is the level of attention to detail that many would not have a reason to apply otherwise, apart from maybe subjects like Mathematics. So one anwser to the problem of creativity is: learn to build apps and you will think so much better!

@YvesMuyaBenda
Copy link

Or to summarise thoughts still further, the musician combines melodies, harmonies, rhythms, instrumental colours, dynamics in communicatng emotions, the painter likewise combines colours and textures on a canvas, the mathematician's thoughts are analogies based on a given symbol system; so a definition of creativity that rests within the concept of combining concepts (things!) is not only super-applicable, but easily understandable for many, and is clear enough to form the foundation of a sequence of teachings.

I think that is all I will say!

@YvesMuyaBenda
Copy link

Actually, Zed Shaw is one of the few folk I have seen speak concretely about the process of taking an idea and breaking it down: https://www.youtube.com/watch?v=w1-bDwNtG-I

@nelsonic
Copy link
Member Author

Good Wiki/List of resources for learning HTML, CSS & JS:
https://www.quora.com/What-is-the-best-way-to-learn-HTML-CSS-and-JavaScript

@nelsonic
Copy link
Member Author

https://github.com/ossu/computer-science

@newswim
Copy link

newswim commented Dec 31, 2017

Looking over the OSSU curriculum, I really like what they've carved out. Next year would be a good time to join or a start one of their cohorts.

@nelsonic
Copy link
Member Author

@nelsonic
Copy link
Member Author

nelsonic commented Sep 8, 2018

KhanAcademy has a good intro to HTML and CSS: https://www.khanacademy.org/computing/computer-programming/html-css

@nelsonic
Copy link
Member Author

This is a good visual: https://github.com/kamranahmedse/developer-roadmap

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or enhancement of existing functionality question A question needs to be answered before progress can be made on this issue
Projects
None yet
Development

No branches or pull requests

5 participants