Programming
Software Development
https://www.youtube.com/user/Computerphile/playlists https://github.com/mtdvio/every-programmer-should-know π₯ https://web.archive.org/web/20121106102625/http:/blog.objectmentor.com/articles/2009/02/26/10-papers-every-programmer-should-read-at-least-twice
https://github.com/Developer-Y/cs-video-courses - lecture courses https://github.com/EbookFoundation/free-programming-books https://teachyourselfcs.com/
ΠΠ΄Π΅ΡΡ ΠΏΡΠΎ ΠΎΠ±ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠ΅ΡΠΎΠ΄Ρ, Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.
https://github.com/Hexlet/hexlet-slack-archive/wiki - ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΡ Π½Π° hexlet
https://github.com/jwasham/coding-interview-university
ΠΠ°ΠΆΠ½ΡΠ΅ ΠΈΠ΄Π΅ΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ:
Domain Drived Design - ΠΏΠΎΠΊΠ°Π·Π°Π»Π° Π²Π°ΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ° Π² ΠΊΠΎΠ΄Π΅.
Continious Delivery - Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠ°ΠΏΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΠΏΡΡΠΊ ΡΠ΄Π°ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
Networking ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Web - ΠΏΠΎΠΊΠ°Π·Π°Π»Π° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠΎΠΈΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π² ΠΊΠΎΡΠΎΡΡΡ Π»ΠΎΠ³ΠΈΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΊΡΡΡΠ°.
Dockerization -
DevOps - Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²Π»Π°Π΄Π΅ΡΡ ΡΠ²ΠΎΠΈΠΌ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ.
Continous Integration -
ΠΠΈΠ΄Π΅ΠΎ ΠΠΈΡΠΈΠ»Π° ΠΠΎΠ»Π΅Π²ΠΊΠΈΠ½Π° https://www.youtube.com/playlist?list=PL0vozJOrHoiLctFgohTe8wuIF5uDzkEWT
https://dev.tube/ - selected videos for developers
https://henrikwarne.com/2015/04/16/lessons-learned-in-software-development/ https://blog.juliobiason.net/thoughts/things-i-learnt-the-hard-way/
Spec first, then code
Write steps as comments
Unit tests are good, integration tests are gooder
Tests make better APIs
Be ready to throw your code away. TDD was designed to throw code away. You shouldn't worry about this. Your code is not a wall: if you have to throw it always, it is not wasted material. Surely it means your time writing code was lost, but you got a better understanding about the problem now.
Good languages come with integrated tests.
Future thinking is future trashing. Don't solve problems for a future problems. Solve the problem you have right now.
Documentation is a love letter to your future self
The function documentation is its contract
If a function description includes an "and", it's wrong
Don't use Booleans as parameters
Good languages come with integrated documentation
A language is much more than a language. A programming language is that thing that you write and make things "go". But it has much more beyond special words: It has a build system, it has a dependency control system, it has a way of making tools/libraries/frameworks interact, it has a community, it has a way of dealing with people.
Types say what you data is
Data flows beat patterns
Design patterns are used to describe solutions, not to find them. First, solve your problem; find a good solution; then you can check the patterns to know how you name that solution.
ALWAYS use timezones with your dates. When dealing with dates, always always add the timezone with it. There will be always a problem with your computer timezone and the production server timezone (or one of the instances timezones) and you'll lose a lot of time trying to debug what the heck the interface is showing the wrong time.
Loggers beats debuggers
Learn to monitor. Adding monitoring early will help you understand how your system behaves.
Companies look for specialists but keep generalists longer
The best secure way to deal with user data is not to capture it
Keep a list of "Things I Don't Know"
Excercises https://codelabs.developers.google.com/
ΠΠ½Π»Π°ΠΉΠ½ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ https://welcome.stepik.org/en
Effective Mental Models for Code and Systems https://medium.com/@copyconstruct/effective-mental-models-for-code-and-systems-7c55918f1b3e
SICP https://composingprograms.com/pages/12-elements-of-programming.html https://gist.github.com/anton-kabysh/00b3674a4593b05e6a451671e235c32e
https://twitter.com/akhmylov/status/1171812708049707008
https://www.csc.gov.sg/articles/how-to-build-good-software https://matthewreinbold.com/2019/07/17/OvercomingComplexity/
https://habr.com/ru/post/317312/ https://habr.com/ru/post/317850/ https://guides.hexlet.io/check-list-of-engineering-practices/
Last updated
Was this helpful?