The list is divided into fundamental knowledge or the absolute basics to get started, basic knowledge (what's needed for simple freelance or open source work), intermediate knowledge (the skills to get the job), and advanced knowledge (how to stand out).
Due to the length of the recording the episode was divided into two parts. This first part looks at the fundamental and basic knowledge needed to be a web developer. Next week will feature the intermediate and advanced knowledge to be a web developer as well as a brief list of the honorable mentions that did not make the list but are good to know to advance as a web developer.
Fundamental Knowledge Web Development 101
“By basing your skill set on learning the underlying languages of these frameworks and libraries you will future-proof yourself against this “fast-moving” industry to a point where it actually feels like things move incredibly slowly.” ~ Tim Wright
These are the absolute basics one must learn when starting out in web development. All of the future items on the list build upon these fundamentals.
- 21:50 Core Web Languages
- 27:25 A Serverside Language
- 31:33 APIs, AJAX, and Callbacks
- 34:31 Editors and IDEs
“This is a crucial element. If you are mainly a front-end developer, then you still need to have a cursory understanding of how things work on the back-end.” ~ David Tucker
Know the fundamentals of API calls and how to use HTTPS and OAuth. Learn how and be able to get data and parse JSON or XML.
“You want to get comfortable enough with editors that if you are asked to do something you can do it”
Starting out pick an editor or IDE and master it’s functionality. This is something that comes with time and practice. Learn the core of the editor and then explore plugins and extensions.
The next level up from the fundamentals. These are skills for getting started with simple freelance work or making open source contributions.
- 37:20 Databases and Web Servers
- 43:21 Security
- 46:30 Source Control
- 50:54 Effective Estimations
“At a beginning level you need to realize a little bit about relational database design and actually breaking things down so you don’t repeat yourself.”
Learn the differences in databases and languages talking to databases. Be able to take a chunk of data and break it in such a way that data isn’t repeated and able to be accessed in a performant manner. Many programmers struggle with SQL. Learning SQL will help to stand out from the programmers that do not know SQL. NoSQL is more key-value pairs or document databases.
You are not likely to keep your code locally. Learn about HyperText Transport Protocol and HTTP Web Servers. Knowing simple server tools will help troubleshooting your apps or when talking with server admins. Get practice logging in to remote servers via a pay-as-you-go service like AWS or Microsoft’s Azure.
“Basically you never, ever want to trust user inputs”
Take time to look at and read the OWASP Development Guide. At the very least know about SQL Injection and how to scrub user inputs. If you are taking user input and putting it in the code it is possible for users to shape input maliciously.
“You can have a secure conversation with the devil”
Learn how and when to use different SALTs to hash passwords. Do NOT store SALTs in the same table. Avoid using MD5 or SHA as these have been cracked. Know the protocols (SSL or HTTPS) for hangling sensitive data and keep informed on the latest attack techniques.
Know a few to understand the different paradigms. There are ones with checkout where you are the only developer with access to that code and others with a branching/merging system.
“Expecially with fixed bids because you’ll say oh this will only cost $1,000 and then work 90 hours for that $1,000”
A good deal of success is based on accuracy of estimations. The key is to learn from each project. Your abilities will change and time to code lessen as you learn better tools and techniques. Estimating ties hand in hand with the development process and your process developing as a developer.
IoTease: March is for Makers
March is for Makers is a movement started by Saron Yitbarek of Code Newbie and Scott Hanselman of HanselMinutes for their respective podcasts. All month long they will be interviewing makers and discussing hardware. Though not officially part of the movement to show our support we are dedicating IoTease this month to fun family projects that can be done each week.
Do It Yourself Smartwatch
With Smartwatches being the new thing in the realm of wearable technology this is a fun project for older kids to build their own smartwatch. It syncs with an Android or iPhone via bluetooth.
Drivers must be installed before creating any code.
- TinyDuino Processor(Lithium Support)
- TinyScreen OLED TinyShield
- Lithium Ion Polymer Battery
- TinyShield USB
- TinyShield NRF 8001 BLE
- TinyScreen Smart Watch Kit
Tricks of the Trade
When solving problems look at the data. It’s very easy to assume you know what the problem is when optimizing. Start collecting real data and getting stats on issues. Until you get real data you don’t know what the problem is and you can think it’s your app when it’s really something down in the stack. Get the data on a problem before setting out to solve it.
A special thanks to Jason, our audio guy for staying up late for this week’s episode as we had some technical difficulties with BJ’s mike and in the editing of the episode.