Blog
the flutter author num is: SELECT post_id FROM wp_postmeta where meta_key = 'wp_user_id' AND meta_value = '1'

Command me, Baby: 3. Learning in the 21st Century

Hey, welcome back. If you’ve never been here before, this is a 42 part series that will teach you to get comfortable using a shell, the programmers swiss army knife.

These aren’t typical blog posts…they’re marked by offensively un-retweetable length and un-scannable content. You’ll need to focus on them for 20 minutes at a time to get value, but if you follow along with the whole series you’ll have a good foundation to either start programming yourself or know what the hell the developers you’re paying are talking about.

Here are the last three lessons, where you learn to open a shell, move and inspect your surroundings, and edit text.

Command me Baby: 0. Learn to love your shell
Command me Baby: 1. Exploring an unfamiliar land
Command me Baby: 2. Learn to read and write.

Today’s topic is optimization. Not of algorithms or hardware, but specifically mental optimization — optimization of the most important computer in any programming equation: your brain.

With the rich and ever-evolving history of computer science, as well as the explosion of technologies and languages that runs parallel with the information revolution we are currently in the throes of, memorizing enough information to provide value is just not an option.

What you need to do early is get comfortable with uncertainty and confident in your ability to seek and find the information you need. The internal workings of your computer can be a paralyzingly daunting subject at first, but that very computer also provides the tools that allow you to comprehend it at a rate unavailable in other fields.

You can’t wait for someone to come along and instruct you…the digital landscape shifts at a speed that means if you rely on instructors, you will inevitably fall behind. I’m going to lay out the three most important methods for teaching yourself.

Riding the tide of the information revolution

Hey everybody, there’s this new cool thing, google. I heard about them from the Superbowl. And, turns out, the internet was made by programmers. There are more tutorials, forums, articles, and general resources online to teach web programming than any other discipline [citation needed].

On the path to effective web development, whenever you’re faced with an unfamiliar challenge or technology, you shouldn’t think ‘crap, now I need to take a two month course or buy this book so I know everything there is to know about the subject’. You should think ‘how many people have done this exact task before?’

This question always gives me confidence, kind of like how it’s easier to do a crossword puzzle a week later because subconciously you know shitloads of people have already solved it.

If the answer is hundreds of thousands, googling a remotely accurate phrase should turn up a step-by-step how-to on joe coder’s blog. 99% of your beginner questions will fall into this category. If you have a beginner’s question, just add ‘tutorial’ to the end of a subject you’re having difficulty with. The wealth of relevant beginner information that this little keyword unlocks will astonish you.

The only time you won’t get a direct answer is if you aren’t asking a direct question. Like in Hitchhiker’s Guide to the Galaxy, when they create a supercomputer and give it millions of years to give them the answer to “Life, the Universe, and Everything” and it comes back with 42.

That was a classic case of an ill-formed question. If you find yourself asking a question that’s too general and not getting you results, don’t dismay. You’re just a step behind in the process; you just need to google for what to google.

This happens a lot with products with generic names. For example, let’s say you installed a firefox extension called Screen and it’s not showing up in the right click menu. Problem is, you don’t know what that menu is called, and “Screen doesn’t appear” keeps pulling up bullshit-ass posts about broken monitors. Don’t give up, you can narrow it down with one or two more words (generally true for any search query).

Google “Firefox Screen doesn’t appear” and probably somewhere on the first page will be some forum post with some guy saying “hey I installed Screen on my firefox but it’s not appearing in the contextual menu”. Don’t even read the response, you got what you were after — that little menu is called a ‘contextual menu’.

Go right back to the search bar and put in “Screen firefox contextual menu doesn’t appear” (order is largely irrelevant for google). Now all the results will be relevant, and you’ll probably even see the answer in the preview.

Never throw your hands up in the air and blame google for you not being able to find something, instead tackle the problem of trying to provide as much context as possible.

If you’re working in a given language (lets say php), you’ll want to unconsciously add ‘php’ to the beginning of the search query, e.g. “php contact form not saving”, every specific word makes a world of difference.

If a command or program gives you an unexpected result and there is an exact error message, even something like “fatal error: file dependency some_bs.so not found”, google that error message in quotes along with the name of the program. It doesn’t matter that you don’t understand the message, and it never will. Someone on the internet did, and you can always rely on them.

Harnessing the mob.

If you’re working on the internet, whether you’re a 16 year old hacker kid or a 32 year old MBA, you need to get comfortable introducing yourself to new communities. Learn their ways, engage with them on a level they respect, earn their trust, and then ruthlessly harvest their sweet, sweet gray matter.

What do we want? BRRAAAIIINNS! When do we want them? BRRAAAIIINNS!

For server administration (what dicking around in the shell evolves into), you’ll want to sign up for an account on Server Fault. For web (and general) programming, you’ll want to be on Stack Overflow.

As an aside, these communities really warm my heart. Most forums for techies are rife with flame wars and irrelevant, uber-nerdy discussions. These sites though give a platform for my favorite social programming impulse — selfless collaboration to scratch a collective itch for problem solving and efficiency. I <3 the philosophy behind and the people powering these sites, for real.

So, if you’re serious about programming, sign up for these sites and set one of them as your homepage. You’ll see enough interesting stuff passing by on the front page feed that you’ll organically click through, and get an idea for what flies and what doesn’t within the community.

Then the next time you are having trouble with something and you can’t google it, create a question about it. Be as specific as possible, make sure to clarify “I tried googling this term but got nothing”, and be polite and respectful. You’ll be amazed at how quickly your problems get solved.

Robotic Introspection

I should mention that your shell itself has the ability to tell you about itself. There is a command called man that will give you detailed information on any command you want.
I admittedly rarely use man pages because the internet answers almost all of my questions in a more direct user-friendly manner, but with regards to completeness of information, there’s no better resource for those of you with the encyclopedic impulses I am devoid of.

For an idea of the extensiveness of information, issue a man hier:

You can use man with any of the commands we’ve learned so far, eg man ls, man cd, pwd. It’s probably worth glancing through the man page for each new command you learn…just to have an idea of what is possible, *NOT* to memorize everything.

Knowledge leads to power and the potential to know is power in itself, but knowledge for the sake of knowledge is weakness.

Filed Under: Development, Teachings

Author: Neil Sarkar

Frank Angelone is a born and raised New Yorker from Long Island. Frank is a graduate of Penn State University with a degree in Management and a minor in Information Systems Management. He’s a huge sports fan and enjoys entrepreneurship. Prior to moving back to New York where he grew up, Frank lived in Illinois while doing an internship and in Pittsburgh where he had his first job out of college. However, his ultimate goal was to work in an environment that combined both his passions for technology and social media. Taking on the role as Project Manager for Vaynermedia was the perfect fit.
blog comments powered by Disqus