A Priceless Education That Costs Nothing: Reading Source Code and Writing Programs
Friday • March 19th 2021 • 7:08:28 pm
Developing quality custom software will help you show off some of your work,
and proudly point to interesting solutions.
A proper and respectful interview that doesn't ask idiotic and incompetent questions,
will only ask you to explain the programs you created.
You will get to talk about challenges you faced,
and proudly explain solutions you implemented or invented.
A real resume does not feature boilerplate clams,
of how you deliver "on time and under budget".
And you probably shouldn't mention that you went to school to learn,
if you need someone to push you along to learn, then you will probably need someone to push you along to work.
A real resume is just a list of programs you created,
with a short description about the brilliant ideas within.
This also protects you from toxic environments that will destroy your creativity,
a company that looks for a cookie cutter resume, is full of cookie cutter people, which is terrifying.
This is a big and in some cases controversial subject,
so let me give you a real world case.
Eric Steven Raymond, the person behind the Jargon File, a Hacker's Dictionary,
states the following in the Education Section of his Resume:
"Education
Undergraduate studies (including some graduate-level courses) in mathematics and philosophy at the University of Pennsylvania.
I have never taken any courses in computer science or software engineering."
Part of the reason why he says that,
is to protect his hard work, he doesn't want people to think that he got his education from some mediocre minimum viable lowest-common-denominator classroom, and a teacher with little real-world experience.
The fact schools don't work very well, if at all, is not a secret,
it is in fact the reason behind insulting and idiotic interview questions.
The fact that we are each extremely intelligent, and that we are each perfectly capable of becoming a humble Polymath,
is inescapable.
And that is what a competent employer would look for,
a balanced view of the world born from being a jack of all trades and a master of those that are interesting.
So,
How do you become good on your own...
You look at the top existing programs,
and try to make smaller versions.
This will help you establish a baseline,
the baseline is the common industry standard, and in this day and age it means use a popular framework or the bare-bones, that whatever system you are working with is handing you.
For example, Bootstrap the Graphic User Interface library I use,
used to rely on jQuery when jQuery was popular and necessary, but as browsers became more sophisticated, they rejected using jQuery and other frameworks, and just used the bare bones of the browser.
They are a fair baseline for industry standard web interface design,
and they hold all the answers as far as a basic standard web interface is concerned.
To lean from them,
means to create a tiny clone of their work, your own take on Bootstrap.
Each time you get stuck,
you go to their website and look up how they did it.
Since both of you at this point are working on the same thing,
they have answers to all your questions.
You can make your version perfect,
creating a Sandalstrap, a more lightweight version of Bootstrap, and that would be one of the items on your resume.
Or you can make a messy version,
where you purely go for the meat of the system, so your program will barely work, but as you file it away to some dusty git repository in hopes of never receiving a bug fix request, you walk away perfectly knowledgeable.
And then you go a step higher,
you search around for people who used a modern framework to enhance the modernized Bootstrap.
One such project is the BootstrapVue,
which relies on Vue.js for enhancing Bootstrap.
Another is Sveltestrap,
which relies on Svelte.
Programming with Vue.js, Svelte, React, Angular, will give the ability to create web-application,
and between knowing bare-bones, and the large modern framework, you cannot help but to become good.
You are likely to end up with several simple and beautiful applications,
maybe tiny websites that bring in a few dollars, and this then becomes an item on your resume.
Imagine an interview where instead of answering stupid and incompetent questions,
you demo your favorite applications and give an overview of several more.
You learn the bare bones by making your own little versions,
and you learn the high end, by working with those frameworks to make interesting little apps.
Now imagine how useful it would be if you had a Video Version of you demoing your apps,
that you could attach to your resume-portfolio.
Nobody is going to ask you if you know OOP, or if you can doodle a user interface layout system media query extravaganza on the white board,
when it is already something that you cover in your video, and clearly feel passionate about.
It takes a long time to figure all this out,
and you are learning so many subjects subjects at the same time, that school at this point seems like a joke.
You would need a couple of decades worth of classes moving at a snail pace,
and even the programs at prestigious universities are off, where they still mention things that are irrelevant and would actually make your software slow had you employed them.
Healthcare website launch problems in 2013 were not just about politics and bureaucracy,
but useless and outdated technologies and methods, probably the stuff they teach in school.
Just the fact alone that many files were being loaded by the browser on launch day,
instead of organized into one or two compressed and bundled extras, reveals inexperienced programmers.
These lessons can't be emphasized correctly in a school environment,
they come precisely from places like the Bootstrap code base.
It takes 10 minutes to figure it out,
and a few hours to start using mini-fication in all your programs.
And that is it,
there is no lecture, no test here, it just becomes obvious and useful.
When you care about learning,
which is what happens when you are learning things you like, you never need to memorize, or put mini-fication on a todo, you just accept it as reality, and a great idea.
I mention the failure of the 2013 Healthcare website,
because it shows that a college education, and working for prestigious companies, on prestigious projects means nothing.
Reality makes it so that fake education,
can only lead to failure.
There isn't a textbook, or a teacher that can emphasize the important things enough,
it has to be practice.
This is why Eric Raymond stands up for his Self Education,
it is the difference between Real Education and Fantasy Education.
Reading and learning from source code and then writing your own programs,
is the only realistic way to learn programming for real.
And you are genius level smart, we all are, but you have to start with baby steps,
it has to be a very comfortable on-ramp, don't start by learning CSS nobody does that, start with what you like and then look at other projects to see how you can make it better.
If you ever get stuck, or are unsure where to go next, or aren't sure where to begin,
then go to a video search box type in the thing that interests you the most followed by the word tutorial.
Seeing and hearing many different perspectives from different people will help you balance your understanding,
and find your next step.
Search for tutorials,
do it, it will be amazing!