- What exactly can you do with Python? Here are Python’s 3 main applications.
- Learning Python: From Zero to Hero
- 50 resources to help you start learning JavaScript in 2017
- A Beginner’s JavaScript Study Plan
- A Study Plan To Cure JavaScript Fatigue
- Learn these JavaScript fundamentals and become a better developer
- Learn these core JavaScript concepts in just a few minutes
- Yes, You Should Learn Vanilla JavaScript Before Fancy JS Frameworks
- Is Vanilla JavaScript worth learning? Absolutely.
- JavaScript Learning & Practices Links, from Zero to Hero
- JavaScript. The Core.
- JavaScript. The Core: 2nd Edition
- These JavaScript methods will boost your skills in just a few minutes
- The beginning of an adventure: 13 Weeks of JavaScript
- Zero to One: How I mastered JavaScript and how you can too
- 5 Common mistakes that every new JavaScript programmer does
- You are learning JS wrong
- Best courses to learn Javascript in 2017
- 6 Skills Every JavaScript Programmer Needs to Have
- 12 Simple (Yet Powerful) JavaScript Tips
- JavaScript brief history and ECMAScript(ES6,ES7,ES8) features
- JavaScript Symbols, Iterators, Generators, Async/Await, and Async Iterators — All Explained Simply
- Understanding Generators in ES6 JavaScript with Examples
- Want to learn ES6+? Here’s a free 23-part course that will give you a strong foundation.
- A Simple Guide to ES6 Promises
- The status of JavaScript libraries & frameworks: 2018 & beyond.
- What if JavaScript wins?
- The Top 10 Things Wrong with JavaScript
- I never understood JavaScript closures
- Top 10 JavaScript errors from 1000+ projects (and how to avoid them)
- An Open Letter to ECMA
- Which is better if I am just starting with JavaScript? "JavaScript: the Good parts by Douglas Crockford or "Eloquent JavaScript" by Marijn Haverbeke?
- Understanding JavaScript OOP
- What I know about testing in JavaScript!
- An Introduction to Service Workers in JavaScript
- Understanding JSON in JavaScript
- How to Learn React - A roadmap from beginner to advanced
- A way to learn React
- Learn React tutorials for beginners
- How to React
- React DevTools
- How to build your own React boilerplate
- 15 JavaScript concepts that every (NodeJS) Programmer must know.
- Learn how to create a simple blog with React & Node
- React JS Top 10 Articles — May 2018
- TypeScript and React using create-react-app: A step-by-step guide to setting up your first app
- Learning React: Is This ES6 or React?
- How to build a React project from scratch using Webpack 4 and Babel
- A quick guide to learn React and how its Virtual DOM works
- Understanding and Debugging in NodeJS
- I am definitely maybe suffering from Javascript-related Stockholm syndrome.
-
Before you can master design, you must first master the fundamentals
-
Typography can make or break your design: a process for choosing type
-
CSS Naming Conventions that Will Save You Hours of Debugging
-
How to layout and design a website (without any design skills)
-
How I automated my job search by building a web crawler from scratch
-
70+ Job Find Websites For Developers & Other Tech Professionals
- 25 Free Resources for New JavaScript Developers
- Public Roadmaps
- DATA SCIENCE MASTER'S
- The 2018 Web Developer Roadmap
- The Ultimate Guide to Learning Full Stack Web Development in 6 months, for $30
- The JavaScript Learning Landscape in 2018
- JavaScript Is Sexy - Master JavaScript and Frontend Development
- [Learn JavaScript: Best JavaScript tutorials & best JavaScript books 2018](https://reactdom.com/javascript
- The JavaScript Developer's Reading List
- The JavaScript Developer's Reading List
- 600 Free Online Programming & Computer Science Courses You Can Start in January
- 530 Free Online Programming & Computer Science Courses You Can Start in May
- 370 Online Courses With Real College Credit That You Can Access For Free
- 71 OF THE BEST PLACES TO LEARN TO CODE FOR FREE
- Datastructures and Algorithms - VisualGo.net
- Learn Programming (FAQ)
- Learn Programming Language
- My giant JavaScript Basics course is now live on YouTube. And it’s 100% free.
- Learnhowtoprogram
- Some useful websites for programmers
- Python resources
- BEST RESOURCES FOR WEB DESIGN AND DEVELOPMENT WITH HTML5 & CSS3
- CSbooks
- A free guide to HTML
- A free visual guide to CSS
- RECOMMENDED RESOURCES AND TOOLS FOR BEGINNERS
- The Front-End Design Checklist
- 25 HTML & CSS Tutorials
- My rules coding for HTML, CSS and JavaScript development
- Web Development Tools | Tools and programs I use every day as a developer.
- Front-end Job Interview Questions
- Beginning JavaScript: Introduction to Functional Programming
- https://www.in5days.tech/
- https://react-index.com/
-
Mozilla Developer Network - a highly technical documentation of all things front-end
-
HTML Validator - tool to check markup accuracy
-
CSS Lint - tool to check CSS accuracy
-
JSLint - tool to check JS code quality
- 20 Most Useful Tools For Programmers And Developers
- Top tools for junior frontend developer
- Darkmode.Js - Add a dark-mode / night-mode to your website in a few seconds
- MDN Web Docs | Resources for developers, by developers.
- DevDocs API Documentation | Organized Docs for all Popular Web Technologies
- World Wide Web Consortium (W3C)
- W3Schools Online Web Tutorials
- Can I use... Support tables for HTML5, CSS3, etc
- CSS Reference - A free visual guide to CSS
- CSS3 Please! The Cross-Browser CSS3 Rule Generator
- Object-oriented CSS
- An Introduction To Object Oriented CSS (OOCSS)
- Public API Resources | A collective list of free APIs for use in software and web development.
- HTML elements reference by MDN
- HTML Cheat Sheet (with new HTML5 tags)
- Glyphs | HTML Entity Reference by CSS-Tricks
- HTML Entity Lookup
- Emmet Documentation
- CSS Reference by MDN
- CSS reference by Codrops
- Can I use... Support tables for HTML5, CSS3, etc
- The 30 CSS Selectors You Must Memorize by Tutsplus
- CSS for People Who Hate CSS
- Media Queries | Codrops CSS Reference
- Cool things you can do with Google Chrome Developer Tools
- Specificity Calculator
- Clippy - CSS clip-path maker
- Cubic-bezier function generator
- CSS easing functions
- JavaScript reference by MDN
- JavaScript Operator Precedence Table
- JavaScript Event Reference
- YOU MIGHT NOT NEED JQUERY
- JavaScript Keyboard Codes Reference
- Principles of Writing Consistent, Idiomatic JavaScript
- Learning JavaScript Design Patterns A book by Addy Osmani
- Node.js Documentation
- Express Reference
- The MongoDB Manual
- Mongoose Documentation
- Node.js Best Practices
- Awesome Node.js
- Node Weekly Newsletter
- Design course in form of articles
- Learn more about flat design
- Periodic Table of Web Design Process
- Codrops | Useful resources and inspiration for creative minds
- Huge list of front-end development resources
- Curated resources for everything creative
- Ideas for Subtle Hover Effects
- CSS Button Generator
- CSS WAND | Easy Copy-Paste Beautiful CSS
- Google Fonts: tons of free, easy to use webfonts
- FONT SQUIRREL: Free Fonts! Legit Free & Quality
- MyFonts (PREMIUM)
- CSS Font Stack: Web Safe and Web Font Family with HTML and CSS code.
- FontPair - Helps you pair Google Fonts together
- Design Beautiful Typography with TYPETESTER
- Unicode character table
- 17 Best Logo Fonts for Beginners
- 50 Logo Fonts Every Designer Should Know About
- List of best free fonts for designers
- A Pocket Guide to Master Every Day's Typographic Adventures
- The Art Of Mixing Typefaces Google Fonts Edition
- Color Hex Color Codes
- HTML COLOR CODES
- Flat UI Colors 280
- UI Colors - Get Awesome UI Colors for Your Website
- Material Design Color Palette Generator - Material Palette
- Color Hunt - Color Palettes for Designers and Artists
- LOL Colors - Curated color palette inspiration
- uiGradients - Beautiful colored gradients
- Paletton - The Color Scheme Designer
- 0to255: Color Picker Tool
- Random A11y Color Palettes
- Colordot - A color picker for humans
- Get Color Schemes of Websites in Stylify Me
- COOLORS - The super fast color schemes generator
- ColorZilla - Eyedropper, Color Picker, Gradient Generator and more
- Ultimate CSS Gradient Generator
- CSS colour names
- Adobe Color CC
- Social Media Colours - Hex and RGB Colours of the Web
- An Introduction to Color Theory for Web Designers
- Free Stock Photos from Pexels
- Unsplash: Beautiful Free Images & Pictures with Great API
- THE STOCKS - Best royalty free stock photos, videos, mockups, icons and fonts
- ISO Republic - Free High Resolution Photos & Videos
- Pixaby - Stunning Free Images to Use Anywhere
- Food Pictures
- IM FREE - A curated collection of free web design resources
- The Pattern Library
- Subtle Patterns | Free textures for your next web project
- iStock | Stock Images, Royalty-Free Pictures, Illustrations & Videos (PREMIUM)
- Free PSD
- Freepik: Free Vectors, Photos and PSD Downloads
- Unsplash Source: A Simple API for Embedding Dummy Image Placeholders
- Placeholder.com: Dummy Image Placeholders
- Mazwai: Download free creative commons HD video clips & footages.
- Random User Generator
- coverr | Beautiful, Free Stock Video Footage For Your Homepage
- Startup Stock Photos | Free Tech Stock Photos
- PlaceIt | Make Mockups, Logos, Videos and Designs in Seconds
- Canva
- Design Considerations: Text on Images
- 404 illustrations | - Trendy, ready to use images for your 404 page
- Font Awesome: The world's most popular and easiest to use icon
- Ionicons: Beautifully crafted open source icons
- FLATICON Free vector icons - SVG, PSD, PNG, EPS & Icon Font - Thousands of free icons
- iconmonstr: Free simple icons
- icon8 | Download free icons, music, stock photos, vectors (PREMIUM)
- icon54 | Vector line and solid Icons collection pack for iOS, Android, Websites & Apps (PREMIUM)
- Fontastic | Free Icon Font Generator
- IcoMoon | Icon Font & SVG Icon Sets
- Entypo+: Another beautiful icon set
- ICONFINDER: Free Icons!
- Media Queries
- Liquidapsive
- Responsinator: is designed to test responsive websites on different device resolutions.
- What's My Browser Size
- Blueprint CSS - CSS Grid and Layout Library
- Responsive Grid System
- 960 Grid System
- Animate.css
- WEBAPPERS Tooltips
- Magnific Popup: Responsive jQuery Lightbox Plugin
- Tooltipster - The jQuery Tooltip Plugin
- jQuery One Page Scroll
- UX Crash Course: 31 Fundamentals
- UI tricks that can lead to higher conversion rates
- Dribbble: Discover the World's Top Designers & Creative Professionals
- Land-book - the finest hand-picked website inspirations
- One Page Love: Website Inspiration and Templates
- siteInspire: Web Design Inspiration
- Calltoidea - Light up your imagination
- Codrops | Useful resources and inspiration for creative minds
- Behance
- awwwards
- Admire The Web: The very best in web design inspiration
- PatternTap
- Google fonts inspiration
- Bootsnipp | Home of free code snippets for Bootstrap
Some amazing designers on Dribble:
- https://dribbble.com/victorerixon
- https://dribbble.com/benske
- https://dribbble.com/peterfinlan
- https://dribbble.com/Radium
- Minify - JavaScript and CSS minifier
- Code Beautify: Free Online Tools For Developers
- CSS Compressor & Minifier
- JavaScript Compressor
- Diffchecker - Online diff tool to compare text to find the difference between two text files
- Markup Validation Service
- Validate CSS
- ECMAScript 6 compatibility table
- A Web Designer’s SEO Checklist (Including Portable Formats)
- Google Analytics
- PageSpeedInsights
- Compare your mobile site speed
- woorank | Website Review Tool & SEO Checke
- Prefixr | Cross-Browser CSS3 Prefix Generation Made Easy!
- Sizzy | The browser for developers and designers
- Kinsta | A Beginner’s Guide to Website Speed Optimization
- Compress.ioo - Optimize and compress your images online.
- JPEG Optimizer - Compress and Resize Your Digital Photos
- TinyPNG – Compress PNG images while preserving transparency
- Lorem Ipsum - Lipsum generator
- The ultimate favicon generator
- favicon.ico Generator
- Favicon Generator for all platforms
- Dynamic Drive Favicon Generator
- Mockaroo - Random Data Generator and API Mocking Tool
- QURB - Web-based free mockup generator
- MockUPhone - Free and simple screenshots device mockups generator
- Responsive Breakpoints | Responsive Image Breakpoints Generator
- hatchful | Create stunning logos in seconds
- Logaster: Logo Generator
- Online UUID Generator
- SHA256 Hash Generator
- Babel REPL - The compiler for next generation JavaScript
- [SassMeister]https://www.sassmeister.com) | The Sass Playground!
- Useful Online Tools for Developers
- HTML2Jade - HTML to Jade/Pug Online Realtime Converter
- Github Gist | Snippet Manager
- PASTEBIN - #1 paste tool since 2002! | Snippet Manager
- Style Tiles | A Visual Web Design Process for Clients & the Responsive Web
- Balsamiq. Rapid, effective and fun wireframing software.
- Moqups | Online Mockup, Wireframe & UI Prototyping Tool
- Wireframe.cc - minimal (browser)wireframing tool
- Website Speed Test
- Pingdom Website Speed Test
- Loader | Application Load Testing Tools for API Endpoints
- Codepen - Client Side Code
- CODEPLY | Bootstrap snippets, code examples and editor
- JSFiddle - Client Side Code
- Repl - Server Side Code
- JS Bin
- Cloud9 IDE
- codeanywhere
- codeenvy
- Liveweave - Client Side Code
- StackEdit – In-browser Markdown editor
- Tinkerbin - JSter Javascript Catalog
- Node.js Playground | Katacoda
- Atom: A hackable text editor for the 21st Century
- Bluefish
- Brackets - A modern, open source text editor that understands web design.
- Eclipse
- Netbeans
- Notepad++
- JetBrains: Developer Tools for Professionals and Teams
- Sublime Text - A sophisticated text editor for code, markup and prose
- Visual Studio Code - Code Editing. Redefined
- FileZilla - The free FTP solution
- WinSCP :: Free SFTP and FTP client for Windows
- Cyberduck | Libre server and cloud storage browser for Mac and Windows
- Stack Overflow
- webdev.slack
- hack.pledge() | A community of developers helping each other master software craftsmanship
- Meetup: We are what we do
- Barcamp.org
- Treehouse show, weekly video about new things in webdesign and development
- Sidebar: the 5 best design links, every day
- Webdesigner Depot: Web Design Blog
- Smashing Magazine - For Web Designers And Developers
- 1stWebDesigner - Helping You Build a Better Web
- HeyDesigner - Design news. Curated daily.
- Define your project (goal and audience)
- Plan out everything
- Sketch your ideas before you start designing
- Design and develop your website with HTML and CSS
- It’s not done yet: optimization
- Launch the masterpiece
- Site maintenance
- Public API Resources - https://github.com/toddmotto/public-apis?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more
- Bill Gates-1986
- 10 Great Programming Projects to Improve Your Resume and Learn to Program
- Want to build something fun? Here’s a list of sample web app ideas
- The Secret to Being a Top Developer Is Building Things! Here’s a List of Fun Apps to Build!
- 5 Real Examples of Freelance Projects Junior Developers Should Apply to
- Where to Find the Best Freelance Projects for Junior Developers
- 5 Real Examples of Freelance Projects Junior Developers Should Definitely Avoid
- JavaScript Code Along #1: create a todo list
- Omnifood
- 180 websites in 180 days
- Curated list of project-based tutorials
- A curated list of project-based tutorials in C
- build-your-own-x
- A curated list of applications specifications and implementations to practice new technologies, improve your portfolio and sharpen your skills.
- Open Source Society University API server
- Mega Project List
- 10 Web Developer Portfolio Tips
- 17 Tips & Tricks to Create a Kick-Ass Web Developer Profile in Freelancer.com
- How to Brand Yourself as a Freelance Developer in 2019 (and Beyond)
- How to charge for a website the right way
- How Much Should You Charge for a Website?
- Why You Should Break Free and Become a Freelance Developer Today
- HOW TO MAKE YOUR FIRST $1,000 THROUGH FREELANCING
- codekatas
- projecteuler
- Topcoder
- Spoj
- Code Golf Stack Exchange
- code.org/learn
- interactivepython.org/runestone/static/pythonds/index.html
- try.github.io/levels/1/challenges/1
- tryruby.org/levels/1/challenges/0
- lifehacker.com/bento-showcases-the-best-resources-for-learning-to-code-1450016607
- codecombat
- codingame
- coderbyte
- codewars
- codedefights
- codingame
- topcoder
- hackerrank
- leetcode
- codechef
- geeksforgeeks
- codeforces
- Learn web development | MDN
- Treehouse
- Envato Tuts+
- Udemy
- Udacity
- edx
- lynda.com
- Frontend Masters
- Egghead
- Pluralsight
- Microsoft Virtual Academy
- Khan Academy
- Upskill
- MongoDB University
- Arkmont
- Kilobolt
- W3Schools
- Coding Dojo Algorithm Platform
- Learn Code the Hard Way
- RallyCoding
- DataCamp
- tutorialspoint
- Eduction simplified
- BitDegree4
- Wes Bos
- coursetro
- Code College
- CSX
- Learn How To Program Courses
- Learn to Code
- Learn the Web
- Learn to Code HTML & CSS
- Learn To Code
- Online Classes by Skillshare
- React Tutorials
- Getting Started with React
- Leveling Up With React (1/3): React Router
- Leveling Up With React (2/3): Container Components
- Leveling Up With React (3/3): Redux
- CS50
- OSS University
- Open Source Society University
- Intro to Computer Science Terminology
- Teach Yourself Computer Science
- A Self-Learning, Modern Computer Science Curriculum
- Learn Computer Science in 5 Months
- Front-End Development Handbook 2018
- Web Development
- Intro to Web Development
- < SnoopCode />
- Hack Club Workshops
-
https://blog.risingstack.com/javascript-clean-coding-best-practices-node-js-at-scale/
-
Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript
- https://github.com/felixge/node-style-guide
- https://github.com/substack/stream-handbook#introduction
- NODE JSERA
- Beginning Python From Novice to Professional
- Python Learning Handbook (Learning Python)
- Python Programming (Program Python)
- Python Cookbook
- Python Programming: An Introduction to Computer Science
- Modern Python Cookbook
- Python Core Programming (Core Python Applications Programming)
- Fluent Python
- Effective Python: 59 Effective Ways to Write Better Python
- Learning Python Design Patterns
- Python Advanced Programming(Expert Python Programming)
- Python Performance Analysis and Optimization ( Mastering Python High Performance )
- The Django Fundamentals (Tango with Django)
- Lightweight Django(Lightweight Django)
- Python Web Development: Test driving method
- Web Development with Django Cookbook
- Test-Driven Development with Django
- Django Project Blueprints
- Flask Web Development: Python-based Web Application Development
- Deep Understanding Flask (Mastering Flask)
- Web Scraping with Python
- Proficient in Python Reptile Framework Scrapy ( Learning Scrapy )
- Web Scraping with Python
- Python reptile development and project combat
- Python 3 Web crawler development combat
- Use Python for Data Analysis
- Python Data Science Handbook
- Python Financial Analysis (Python for Finance)
- Python data Visualization Cookbook
- Data Wrangling with Python
- Python Machine Learning with Python (Introduction to Machine Learning with Python)
- Python machine learning Practice Guidelines (Python Machine Learning Blueprints)
- Python Machine Learning Case Studies
- Python Machine Learning Practice: Test-driven Development Approach (Thoughtful Machine Learning with Python A Test Driven Approach)
- Python Machine Learning Cookbook
- TensorFlow: Practical Google Deep Learning Framework
- Web Typography
- CSS Diner
- Flexbox Froggy
- CSS GRID.
- Learn CSS Grid for free
- CSS Grid Layout
- A Complete Guide to Grid
- http://cssguidelin.es/
- http://cssreference.io/
- https://www.smashingmagazine.com/2013/08/semantic-css-with-intelligent-selectors/
- Lighthouse
- Google Speed
- 10 Awesome Web Developer Portfolios
- 15 Web Developer Portfolios to Inspire You
- Building a Strong Portfolio As a Developer
- Matheus Fantinel
- Marc Backes
- RMK
- iamjrp
- Brittany Chiang
- Brylle Mutia
- Praveen Kumar
- Khoa Thien Le
- Kelly Vaughn
- KVLLY SHOP
- Devon Stank with resume, blog and shop
- http://www.pascalvangemert.nl/
- http://seanhalpin.io/
- https://ritwickdey.github.io
- Phoebe
- https://iamdesmondjr.com
- Erwin Agpasa - Software Developer built with wordpress
- Resume
- Resume
- https://ryanfitzgerald.ca/
- https://kylegach.com/
- http://doodledudes.github.io/portfolio/
- https://merakireal.github.io/
- http://findmatthew.com/
- https://juliette.sh/
- Rafaela Lucas
- Rafael Caferati
- https://prayash.io/
- http://jtom.me/
- Chris Dermody
- Chris Dermody Portfolio Template
- SARAH DRASNER
- https://www.jdeen.com/
- http://emilehay.xyz
- https://k-create.com/
- http://raghibm.com/
- http://kyleledbetter.com/
- http://jieverson.com/
- https://andrewborstein.com/
- https://www.adithyabhat.com/
- https://itsjzt.github.io/
- http://jamiekdonnelly.co.uk/
- http://www.pavelhuza.com/
- Frances Berriman for Abbyjel
- http://www.albinotonnina.com/
- http://willemwijnans.github.io/
- https://www.stevelongoria.net/
- http://sharynneazhar.com/
- https://sachin5sos.github.io/
- https://wb.gy/
- https://nrobinson.me/
- https://veerasundar.com/
- https://rphl.io/
- https://asamshan.com/
- https://davidpierre21.github.io/
- https://syknapse.github.io/Syk-Houdeib/
- Shrey
- https://danaguinaldo.github.io/
- https://www.klarafleischmann.de/
- https://celest.in/
- https://tareqanwar.com/
- Jem Young: Software Engineer
- https://raivivek.in/
- https://www.austintackaberry.co/
- http://www.jdpenuliar.com/
- https://mrkaluzny.com/
- https://mrugeshm.com/
- https://www.klarafleischmann.de/
- https://programmingwithmosh.com/
- https://nedu.github.io/
- http://ieshamwilson.com/
- https://devmount.de/
- https://gezzalou88.github.io/
- https://shgysk8zer0.github.io/
- http://michaelschmitz.me/
- https://sukhjinderarora.github.io/
- http://kelvinsantos.github.io/
- https://keihayashi.github.io/
- https://nguyenda18.github.io/#
- http://yehoshuaart.com/
- http://www.devr52.esy.es/
- https://shovanch.com/
- https://envincebal.github.io/my_portfolio/
- http://myportfolio.danilocarrabino.net/portfolios/danilo.carrabino
- http://yarik-kalytiuk.com/
- https://www.joelreed.co.uk/
- http://www.tedwhang.com/
- http://www.darcyclarke.me/
- https://cod3rguy.github.io/
- http://marcoterrinoni.altervista.org/
- https://www.arielcamus.com/
- https://dylanscott.me/
- http://www.toby-powell.com/
- https://www.craigsc.com/
- http://harinilabs.com/
- http://www.gummisig.com/
- https://abialbon.js.org/
- http://www.robinwest.co.uk/
- https://vincentriemer.com/
- http://www.robinwest.co.uk/
- http://www.bradoncode.com/
- https://selhar.github.io/
- http://sebpearce.com/
- https://wajahatkarim.com/
- https://albertomontalesi.github.io/
- https://www.valeriacreativedesign.com/
- https://sindresorhus.com/
- http://www.andrewusher.co/
- http://www.ginamariegomez.com/
- http://michaelgkroth.com/
- http://chrisdaly.github.io/
- https://felixrieseberg.com/
- https://mnefertiti.github.io/
- http://quentinwatt.com/
- https://aksanakuzmitskaya.github.io
- https://benjaminbrandt.com/
- http://www.coderguy.tech/
- https://harrison.tech/
- https://syknapse.github.io/Syk-Houdeib/
- https://jajoosam.tech/
- http://raghibm.com/
- https://asjasroos.co.za/
- https://jesuodz.github.io/
- http://azpixels.com/
- https://webdev.com/
- http://www.mlpdesign.net/
- https://iwakoscott.com/
- https://www.hipstercode.com/
- https://www.tiffanyrwhite.com/
- https://www.dynanx.com/
- https://www.myportfolio.com/
- Kristof Kovacs Software architect, consultant
- Evening Journal
- Review learnings or Problems before bed
- Plan for tomorrow - todo list
- Layout clothes
- Clean up
- Good & bad
- Put cell phone away
- Window breathing
- Journal
- Get dressed
- Pack & plan for day
- Shower
- pushups or jumping jacks
- Breathing techniques (Wim hof)
- Make bed
- Coffee, tea, propel
You don't know what you don't know.
- You know some syntax, a few keywords.
- You can come up with a dozen variations on Hello World.
- You don't even know how to Google your questions; it's very hard for you to even figure out how to even ask how to do the thing you want to do.
- You don't yet know the difference between good code and bad code. Which means your code is bad.
You know what you don't know, but you don't know very much
- Syntax has improved, and you know more keywords.
- You've successfully made a thing run, without debugging.
- You can't write a full program from start to finish, but you can get pretty far.
- You can kind of figure out how to Google your questions.
- You have a rough idea what bad code looks like.
YOU KNOW CODE-FU! You've pretty much learned everything at this point.
- You've learned basically all of the keywords, and you totally get the syntax.
- Your stuff runs successfully, and you can make the program do the thing you want to.
- You can Google any question you have.
- You can successfully identify bad code. And it's everywhere.
- People are idiots and terrible coders.
You're practically a master; getting to master is all about learning those nunchaku. I mean, there's a few things here or there you don't know about, but you're leveling up all the time.
- There's a few "neat tricks" in the language. Ternary operators are spiffy, Regexes are handy. There's a bunch of stuff you can do on arrays
- Your stuff runs successfully, and if you have time, you try to optimize it.
- Abstraction is starting to click; it's important to be DRY and separate concerns
- [framework] is pretty cool, you should totally check it out
- Some of those guys in Google search results are idiots. You have to be careful where you get your information.
- You know that you've written some bad code
- You're writing some good code because other people tell you so
- You wonder why people don't optimize their code more often
Dude, it's not just about nunchucks. That why you learned the Sai, and the Bo, and the eskrima. You're all four ninja turtles wrapped up into one post-adolescent mutant ninja coder. You can convert red bull and pizza into über optimized 1s and 0s.
- You can use every neat trick in your language. Every variable is a ternary operator of some sort. Bitwise FTW. Why use a find and replace method when you can just do it in one long regex?
- Your stuff runs; but if you've got time you do some unit testing.
- You abstract everything everywhere all the time. Separation of concerns, man!
- [framework] is the best and anyone who says otherwise is wrong. That's why you write plugins for it!
- You've written a few blog posts, or answered a few questions on Stack Overflow.
- You consistently write good code; people can count on you for writing good stuff
- Other people compliment you on your creativity in using obscure features of your language
- You wonder why everyone doesn't optimize their code more; don't they care about optimization?
You know that scene from Indiana Jones and the the Raiders of the Lost Ark, where this one bad guy is awesome with a sword, and Indy just shoots him? You're Indy; you don't care about the flashy tricks any more, it's just about doing what makes sense. You know what you don't know, but you know you don't know very much.
- Neat Tricks are exactly that: neat tricks. You use "hacks" sparingly, because, just like Harrison Ford, you've gotten sick and you don't have time for a long, convoluted solution.
- framework] has some flaws. that's why you've got [framework] or [framework].
- You know what? None of those frameworks do the thing you need; that's why you've been working on this new framework.
- Your code is documented, and readable.
- Your code passes unit tests, and that's more important than, "it runs."
- You abstract when necessary; you have crap to do.
- You've answered a lot of Stack Overflow questions because you've found out there's lots of ways to do the same thing.
- There's no such thing as good code. All code could be better.
- You wonder why you don't code as well as everyone else.
I'm not entirely sure where I rank, but I am absolutely certain that I was an Orange belt for much longer than I thought. I think it's very easy to reach Orange Belt status and think that you know how to program.
While a Brown belt knows most of the features of a language, the Black belt finally knows when to use them.
What skills do self-taught programmers commonly lack? What should a self-taught programmer study to get up to speed with his/her formally-educated peers?
Someone quite interestingly commented on "humility" as a thing that self-taught programmers lack. I agree.
I've been plagued by Impostor Syndrome for a long time, and I think that's kept me humble and driven me to want to study and practice as much as possible, for fear of getting "found out".
There's no shame in being proud of the fact that you taught yourself, but you should be aware of the limitations of your teacher.
This is classic computer science right here. Programming without knowledge of algorithms is like carpentry with just one kind of saw: you can get the job done, but it's going to take a lot longer.
You can look at an algorithm as "discipline". When you learn to write them, what you're doing is solving a problem with discipline; using structure, patterns, and logical steps.
When you don't know how to discipline your mind, you don't know how to write algorithms.
Not only can you not write algorithms unless you've studied them, you don't know how many algorithms others have written, too.
I spent four days trying to figure out how to do a permutation. I was so proud of myself when I figured it out. Right up until I discovered that B.R. Heaps had figured it out in 1963.
This comes with Education and/or Experience. There's more than one way to structure your code, and there's a right time and a wrong time for each. You either need to make mistakes along the way and learn when to use each pattern, or learn from someone else who's already made the mistake (a teacher).
Object-Oriented Programming is not The Way. Neither is Functional Programming. Nor Reactive Programming. It is A Way.
There are different ways to program, and they each have a purpose. Not only that, some languages are naturally better-suited for one paradigm or another.
If all you have is a hammer, everything looks like a nail.
Take that into self-taught programming and you'll find yourself hammering in nails, screws, staples, and thumb tacks.
I remember a self-taught .NET programmer actually telling me once, "well, it's not programming unless it's object-oriented. And that's why I don't consider JavaScript a programming language." That's a very, very flawed train of thought.
Granted, your language can give you a basic idea of what the different data structures are. But again, that's a basic idea.
Self Taught programmers can have a tendency to only stick to data structures that work within their favorite language. Just because it's not a primitive, or even a common structure in your language, that doesn't mean it can't exist. Of course, that also means that maybe it shouldn't exist, either.
The world is very small if it all can fit inside of an array.
Maybe it's just me, but there's a lot of ways to test your code before pushing it to an environment. Learn how to do unit testing.
More importantly, learn test-driven development.
There's a difference between testing your code, and writing testable code.
For me, The Pragmatic Programmer was a big help.