Coding is Communication
“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live” - John Woods
Software developers, especially in small to medium sized companies, are responsible for more than just typing code. You will sit in a key position between customers, marketers, designers, managers, deployment machines, and your fellow developers. At the end of the day it is your responsibility to ensure that there is a working application which fits the end user's needs, deploys smoothly on the necessary platforms, and is scalable and maintainable.
Source code is your final product. After hours of planning, emailing, testing, coding, and getting stuck on bugs, all that's left is the source code. And there's no guarantee that you'll be the one to maintain your code. This means it's crucial for you to embed everything you know about the project directly into your code. Completed source code is the most powerful tool you have for sharing your knowledge of the application.
Your finished code needs to be understandable to 3 very different, and equally important audiences:
- End Users must understand why they're using your software and how to use it
- Developers must understand how to test, maintain, expand, and re-use your code
- Deployment Environments must receive carefully tuned, compiled code or risk crashing
We like to think a lot about number 2, and hopefully you will too.
Before you dive into the hard stuff, it's worth taking a moment to get your head in the right place. Some of the resources below will help you set expectations for how much you'll need to work and what kind of progress you can expect to make in your time with Elewa. Some of these resources are about what developers actually do in their work. The rest of the resources will give you an overview of the technologies you will be learning.
Index
Learning Objectives
- What's software development really like?
- Ethical Programming
- Communicating with Code
- The development environment
- The Internet
- Browsers
- JS, HTML & CSS
- Web Apps
Specifications
- Every time you read or write a line of code ask yourself three questions:
- Does this help the user?
- Does this help the maintainer?
- Does this help runtime execution?
- Read A LOT of code. Print it out on paper if you have to.
- Start building your Developer Vocabulary.
Resources
The Programmer's Oath:
- @ Uncle Bob: Videos, Text
- @ FreeCodeCamp
Absolute must-reads:
- Be reasonable with yourself - Programming takes work, then more work, followed by a lot of practice.
- What is programming?
- Be bad at something, it's good for you.
- Study smarter, not harder!
- Tips to the beginner developer.
- What do programmers do?
Web Development:
Other good reads:
- Killer Article - long, but worth every word.
- Top 8 Developer Habits - Video series by Mr. Funfunfuncion. He'll become your good friend.
- Software development isn't about the code.
- Freecodecamp's article on comparing yourself to others.
- Is programming like learning a language?
- Odin's Web Dev 101
More:
- Communicating with Code
- Is Coding Literacy?
- Code Quality: one, two, three, counterpoint
- 13 Principles of Readable Code
- Writing Clean Code
- Beautiful & Clean
- Linters & Style:
Happy readings! And please do email us with any great links we might have missed, your classmates will appreciate it.