Bootstrap IT Project: getting started

Contents:

Operating systems and systems administration
Linux administration skills
Web development and coding skills
Cloud Computing
Troubleshooting resources
What Bootstrap IT can do for you


Operating systems and systems administration

If you don’t currently have a Linux distribution running on a local computer, you can download Ubuntu, and then follow these instructions for creating a bootable USB stick. You can then use the stick to either try Ubuntu out without touching your existing hard drive configuration, or install the operating system to your hard drive.

There are, of course, many other Linux distributions to choose from. Each distribution has a unique focus, so have fun browsing!

If you’d like to bypass your local hardware and jump right into the world of virtual machines, you can create an account with Amazon Web Services (AWS) and launch a Linux server in just a few seconds. AWS offers new accounts a full year of light usage for free under their Free Tier. You would be amazed how much you can actually accomplish – and learn – using this tier.

Linux administration skills

If you’re going to be launching servers and managing apps, you’re almost certainly going to be spending some time at a command line of one sort or another. Therefore it makes sense to stop putting it off and take the time to become familiar with some basic Linux admin skills. You’ll definitely thank yourself later. This brief course from Udacity (which is available for free if you can get by without a real human guide) will quickly introduce you to Linux command line basics.

If even that’s too slow for you, this is a very simple, ten minute introduction. Ryan Chadwick’s Linux Tutorial will get to a lot further – but will probably take an hour or two to complete.

Whichever resource you choose (and there are hundreds available on the Internet), don’t forget that you can always use Google searches to help you with specific problems. You will probably find yourself coming back over and over again to sites like nixCraft, The Geek Stuff, and Server Fault.

One piece of advice: if you’re new to Linux, save the vi text editor until a bit later in your career. It may be rock solid and awfully efficient in the hands of an expert, but for most of us, something a bit more intuitive like nano will work much better.

If you’re nervous about working with new software and system settings on your main Linux PC, then you’re smart. There is a great deal of damage you can cause yourself while you’re still learning your way. for that reason, I advise admins to do their experimenting on disposable virtual LXC containers: no matter how badly you mess up an LXC, you can kill it and create a brand new one in seconds, without any risk to your host machine. Here’s a brief LXC tutorial that can get you up and running fast. Once your container is created, simply log in and you’ll have a fully-functioning Linux server at your fingertips.

Web development and coding skills

If you’re here, the odds are that it’s partly because you don’t really want to sit through long classes (live or video). If you’re just taking your very first steps in a new technology, working through a well-designed resource can be very useful. But for other purposes, while you’re more than welcome to sign up for any or all of these courses, I would suggest that a great deal of their value is in offering the ability to zero in on just the lecture or page you need to solve your immediate problem.

Programming and web design share many skills in common and are often used together. You certainly won’t go through every shred of content in every one of these sites, but just knowing what’s out there can prove very useful.

  • W3Schools has well organized and fairly comprehensive guides and sandbox environments for playing around with just about any web-related technology. W3Schools covers HTML, CSS, JavaScript, SQL, PHP, ASP, XML, and AJAX.
  • Mozilla’s Learning the Web site. While it’s not quite complete, it does include Python and JavaScript guides.
  • The videos and tutorials on Khan Academy are aimed primarily at a younger audience, but there’s a lot there that’s useful for anyone starting out. The user-created projects that are available for you to experiment on are particularly useful.
  • Code Academy offers interactive “sandbox” tutorials covering HTML, CSS, Databases, and some programming languages. The courses are all available for free, but “Pro” membership offers extra resources.
  • Programmr also has an excellent library of examples organized by language, along with projects (play with and read through code), contents, and challenges – all well organized.
  • Learn Code the Hard Way is made up of identically organized books on Python, Ruby, and C (still in progress). The books are available online for free if you can’t afford to purchase hard copies.
  • Google’s Android Developers resource – including lessons, videos, and links to support resources.
  • It’s not quite as immediately accessible as some of the others, but you can’t argue with the quality: MIT’s Open Courseware provides actual MIT course materials including lecture notes, assignments, and sometimes video lectures and interactive simulations.
  • Udacity offers very professional video courses for free (if you don’t want access to their mentors and certification) or as part of their innovative Nanodegree programs.
  • Coursera provides paid access to hundreds of university level courses at online prices. Udemy and Lynda are also sources for mostly paid courses.
  • And don’t forget YouTube! You never know what treasures you can find through clever searching.
  • Cloud Computing

      Besides individual videos scattered throughout YouTube (including some by actual cloud computing providers like AWS), the most comprehensive training content on the subject will probably be found among the for-pay courses available from

    Cloud Academy and Linux Academy. A WS and
    Digital Ocean also have solid (and free) documentation.

    Troubleshooting resources

    When you get stuck – and you will get stuck – you should know that help is never far away. Your most bestest friend of all, without a doubt, is going to be Google. The trick is to learn how to effectively compose your search string. Assume that all kinds of people have run into the same problem before, and many of those have already asked the question. Keeping in mind the incredible generosity of those individuals who spend so much time answering technical questions on user forums, it’s a safe bet that at least one of those questions has already been answered. And Google can find it for you.

    To let Google know, you’ll have to feed it the right information. “My web site crashed” is way too general to be very helpful. But

      AH01264: script not found or unable to stat: /usr/lib/cgi-bin/test-cgi

    …is far more likely to get you where you want to go. better yet, to more quickly narrow down your search, try enclosing key parts of the string in quotation marks, so Google will only return that exact phrase:

      “AH01264: script not found or unable to stat: /usr/lib/cgi-bin/test-cgi”

    But where did that string come from? Here I will introduce you to your second best friend: error logs. On Ubuntu, at least, most system errors end up in the

      /var/log/syslog

    file. And, assuming you’re using the Apache web server, website-related errors will be saved to

      /var/log/apache2/error.log

    If something goes wrong, take a quick look at your logfiles to see if you can’t find some useful information. Then copy and paste the most likely text into Google. Tip: CTRL+c won’t copy highlighted text in a terminal. You can either use SHIFT+CTRL+c, or right-click your mouse and select “copy”.

    Once you get some experience using Google for troubleshooting, you will notice that there are some web sites – like Server Fault and Stack Overflow that have exceptionally rich databases of answers. If your Google-based efforts don’t work out, you can always try asking your own new question on one of these forums.

    What can Bootstrap IT training do for you?

      The system should be able to help you…
  • Master any of the programming, systems, or networking skills you’ll need to design and deploy effective IT projects.
  • Launch – or enhance – your career.
  • Reach many of your goals even if you lack the time, patience, or money for traditional training programs.
  • The Bootstrap IT system is built on two principles:

    • That the Internet and the open source community are mature enough to provide you with more than enough resources to help you reach all of your training goals.
    • That you are mature, disciplined, and motivated enough to take responsibility for your own future.
    • You can take my word for it about the first principle. Only you can be sure about the second.


      What does it take to get started?

      You might want to read more about the methodology behind Bootstrap IT here.

      Ideally, you should dive into your projects as part of a group of two or three individuals. The ability to effectively work together with people with overlapping experience and skills can really speed up your progress, and it’s also an excellent preparation for life in the IT world.

      If you don’t have enough of your own like-minded friends, you can send me an email and, while I can’t guarantee anything, I’ll try to match you up with appropriate partners.

      Access to an experienced IT professional who can act as your mentor and who can answer your questions when you become completely stuck might also make the difference between success and failure.

      You’ll need to identify at least one concrete goal.

    • “I want to learn how to program in PHP so I can create a web page where my customers can open accounts”
    • “I want to build an iPhone app that will help me market my piano teaching skills”
    • “I want to learn how to wirelessly network all the devices in my home in a way that’s secure.”
    • …Anything that’s ambitious and, at the same time, realistic will do.

    Practically, you’ll need three things: an operating system to act as a foundation for your project, the specific technology skills to get the job done, and a platform from which to run it.

    Want to get involved? send me an email


    How it works