I don’t understand Git and GitHub

I have sometimes wanted to throw the computer across the room when trying to figure out Git, but I found some good tutorials! I’ll put the links at the bottom of this post. Not only did I find helpful tutorials, but I want to put some of what I learned about the Git commands into “non technical terms”.

Git is used to help you organize backup copies of your program. Every time you commit a copy of what you are working on, it is like saving a copy of your document/project. Typically you do this every time you’ve added something or worked on something. All the previous saved versions of your project (or whole program directory, called a repository,) still exist, and you don’t  have to keep making incremental file names the way I usually do. And before you save your file, you can look at the differences you’ve made since the last time you saved. Status will check to see  which files are staged to be saved (commit).

I end up with a big directory full of confusingly-named copies like HorseFridayA.PSD, HorseFridayB.PSD, HorseFridayB2.PSD as I am working on an Adobe Photoshop file, for example. But with Git, your current save contains a log of all the changed versions you’ve made in the past! So if you need to go back and undo something, you have all those undo-states available.

Not only can you see a log of all the changes you’ve made, if you want to go back to a previous version and then “try something different and crazy that may not work” you can clone the project and make a branch. In the branch you can create a second version of your project. Then you can work on that version. And if you end up liking those features and wanting to add them back into the original version, you can merge them back together. Handy!

But another major reason people use Git is this: when you upload your project repository to GitHub other people on your team can make changes and work on the documents at the same time you are in them. Then you can update and merge them all back together. Git will warn you if you have made conflicting changes, and you can resolve them before you merge. And you can see the differences between what you did to your copy of the file, and the other team member did.

You can even use GitHub to fork and make a copy of another person’s code repository and alter it to do the things you’d like it to do. You can pull that copy down to your local computer, make changes and push it back.

So Git and GitHub are powerful and useful, once you know what they are for! I still don’t exactly understand why the command line is favored over a graphical interface, but it is, and “they” say you will find it great after you get used to it.

 Ok, now for the tutorial links. These are some I found especially clear and easy to follow:

Making the command prompt easier to use:

Quiet Easter

I wanted to post last week about Grunt, but I still don’t feel like I understand it well enough to post anything about it.

Today was Easter, and I went for a walk in the woods. So, in order to put off trying to give any information about Grunt, I will give you a couple of photos of my walk in the woods.

Unfortunately, we are having a cold and late Spring, and there was hardly anything to take a photo of.

But, He is Risen!

Twine and Flex

As I work through the Udacity classes on front end web development, I’ve been discovering some pretty good resources on “Flexbox”, a very handy way to make text move around your web page in easily predictable ways that allow your designs to adapt to different sized screens (laptop, tablet, phone).
Here are some of my favorite links. They may help you as well:

In addition to that, I’ve been reading a great book from No Starch Press called “JavaScript for Kids” by Nick Morgan. I have also been looking around at a free, html-based interactive fiction (IF) language/platform called Twine. So I made a little (very basic) tutorial on JavaScript using Twine. JavaScript is Fun.

I had some programming issues making even this tiny script, because I started reading a tutorial on Twine 1.4 and then realized that it has moved to Twine 2.0.x, and changed the syntax. Now, I discovered, you can choose 3 formats for your markup. I chose one called SugarCube because the syntax made the most sense to me (other options are Harlowe and Snowman).

Twine is great fun because it lets you create a branching story in a graphical way; when you link two passages you actually see the link. Then it lets you leverage all the CSS and HTML and scripting language tricks you know to add functionality and cleverness and even more interactivity, images, even animated gifs. And you can test and debug it all before you make it live. Twine publishes its games as a self contained html page using a wiki format called Tiddlywiki. This makes them extremely quick to load and run in a browser.

Of course, having a good story is the crucial part.

Online Learning Tools (Part 4)

I’ve showed you some of my favorite tutorial sites. Now I’m going to briefly describe some of my favorite tutorial podcasts. I love podcasts. I listen to them on my long commute, and sometimes while I’m at work. I sometimes embarrass myself by starting half my conversations with “I was listening to a podcast and someone said…”  Here are some of the ones I have found truly inspirational:

When looking for podcasts iTunes, I always find a lot that have “podfaded” and aren’t ‘making new episodes. They might be worth looking up, but I didn’t list any. I also avoided podcasts marked “E” for “explicit language”.

Web Development:

Start Here
This is a really wonderful podcast, designed to step you through the process of becoming a web developer. They have homework assignments, too! These guys are sincere about what they teach, and invite feedback.

Build & Launch
A new podcast for 2015, you can easily listen to this from its beginning to its current episode, and I suggest you do! Justin Jackson will make you want to make things! He gets me fired up. For season 1 he had a goal to launch a new project every week. I can’t wait to see what happens in season 2.

Coding 101
I don’t catch this one very often since I can’t watch a video podcast while driving to work, but I do recommend this for anyone who wants actual code examples. Father Robert Ballecer is a good teacher. I’ve watched this on my Roku.

Art:

Chris Oatley’s Artcast/Paper Wings
I have never seen anyone as intense about art as Chris Oatley, except perhaps Jerzy Drozd. These fellows take visual storytelling more seriously than a lot of Christians I know take Christianity, and it blows my mind.  Be prepared to analyze everything and come away realizing you don’t work hard enough! (Chris Oatley’s Artcast and Paper Wings are basically one show with two feeds, but that link will get you all of them.)

Lean Into Art
Jerzy Drozd is a master visual story teller who isn’t afraid to let you see the inner workings of his art, life, studio, and mind. He shows you what it takes to be a full time artist, and what you have to give up for your art. He is sober and personal and sweet and friendly and makes me want to attend his classes. These podcasts sometimes come with art challenges you can post via twitter to get comments and critiques.

Pencil Kings
Mitch Bowler finds a new rising star to interview in each episode, and they are always proof that if you are in the right place at the right time doing the right thing you can create your dream job. Or at least, someone somewhere did. But they never make it look easy!

Additional Resources:

These two I found while researching iTunes to see if there were any other good resources. I haven’t actually listened to them much yet.

<Web>Agency </Podcast>
A Responsive Web Design Podcast

 

Meanwhile at Udacity (Week 2)

So Monday was my first “live” session with the Udacity teachers. First I attended a Google Hangout where they discussed some of the more advanced projects. It didn’t pertain to the project I am currently working on, but it was good to know that this would be available to re-watch when the content was more relevant. They have a great library of videos full of content like this; many other people have asked questions about the same projects I will be tackling. This is really useful stuff (if I remember, and take the time to use it).

After that was the “Coaches, Coffee, Code & More” live session. This one was not on Hangouts, it was on rabb.it and I had a lot of technical difficulties with it. In spite of that, it was a personal voice/video chat session with 3 students and 2 coaches. To me, these are the kind of interactions that are setting me up for success with Udacity. I felt like I had a rocky start because I kept applying to the wrong Google group (and consequently was not accepted). In addition, there were (and are) some other technical difficulties on the Udacity site, which have kept me from really feeling close to my “cohort” of students. But when you can spend live time with the teachers, it helps me realize they want to help you succeed.

I didn’t get to any of the “hard projects” yet. I’m really expecting a challenge, since even these first easy projects are out of my comfort zone! But right now I can’t wait to see what comes next.

Online Learning Tools (Part 3)

I’ve discussed some sites already, but I have to get in just a few more that have helped me and may help you.

Lynda.com
This was the first online learning site I ever chose to throw my hard-earned cash at. It has a fantastic variety of tutorials, the majority of which are overviews of various software packages. It’s a great site, but you won’t get nearly as much out of it if you don’t own the software you are studying. With Lynda you get “all you care to learn” tutorials for one monthly fee. I am of the opinion that I learn better on the Udacity/Udemy sites where you have actual quizzes/projects, not just watching someone else tell you what each button does. I haven’t tried every Lynda course, though. Some may be set up in a more hands-on system, but there is no way to interact with the instructor.

A couple more I haven’t used, but want to mention:
Treehouse.com
SitePoint

On to the “art-oriented” tutorials.

Craftsy
Much like Udemy, Craftsy is primarily a “Pay to learn” site, and offers the same one-on-one interaction in the comments. But, frankly I have found more interaction on this site; people want feedback and critique on their art. I found this to be a friendly learning space, and it has many free classes. It also has coupon codes in your e-mail box almost every day, so think about which e-mail you want those to go to when you make your account.

Pencil Kings
I found this site by accident when searching the web for art resources, and I’m glad I did! It offers a great set of free “delivered to your e-mail inbox” tutorials. For a monthly fee you get access to many more. I haven’t taken the time to go through all of my free tutorials. It seems to focus on solid sketching fundamentals. They are always of a very encouraging tone! I believe you get to interact with the instructors as well.

Chris Oatley
This brilliant artist quit his job at Disney in order to start an online teaching school. He is passionate about teaching, passionate about art, and his classes are real “classes”; you have a lot of one-on-one interaction with the teacher, and get out of it what you put in. I haven’t taken one of his classes, but a close friend did.

Here are some other places to find good art tutorials:
deviantART
Ctrl+Paint
YouTube

Basically anywhere you can search for a tutorial, you will find some. But to improve, you just have to spend time doing the thing no matter what it is!

 

Meanwhile at Udacity

I wrote in my last post about how I couldn’t wait to try Udacity, and today the online open enrollment began.
Here’s how it works: You give them your credit card number*, you get seven days to try the class before it’s charged. Enrollment begins today and lasts a week, but study begins today too, if you want to jump right in.

When I saw the course was “6 to 9 months” I wasn’t sure what that means. But here is the explanation: Since it’s your own pace, you may finish it all sooner or later, it depends on how quickly you understand the material and finish the projects. And if you finish quickly you don’t pay for any more than you need.

Well, here begins the next adventure!
My next post will jump back on topic and be part 3 of the Online Learning Tools.

 

*Argh, I couldn’t believe it when I noticed my card expires in 2020. It’s the FUTURE.

Online Learning Tools (Part 2)

After I wrote that blog post on Online Learning Tools, I realized that I knew there was a site called Udacity that I had never tried. So, in the interest of being thorough, I went there to check it out. Let me tell you, I’m glad I did!

Udacity
Now I hesitated to try Udacity since I was already enjoying Udemy and I thought it would just be “more of the same.” They aren’t the same. Udacity has aspects of Udemy, sure; it has online classes at your own pace. But it has them arranged to form “Nanodegrees“: comprehensive sets of courses, developed by a key set of teachers working together. They aren’t random “this class looks interesting” buffets (which is how I am/was treating Udemy).

In Udemy there are sub-sets of classes within the classes, by “teaching group”. Say, you can group classes by “Infinite Skills” brand, and often they will go on sale that way “all Infinite Skills classes are 20% off with coupon AWESOMECOUPON“. But you could also find Infinite Skills classes at www.infiniteskills.com proper. Udacity, on the other hand, is very focused in what it offers, and who teaches it. I would say “which gives an overall more consistent learning style” but I haven’t actually enrolled in any courses yet. But I’m so convinced that Udacity is quality stuff, I’m about to enroll in the Front End Web Developer Nanodegree when enrollment begins. Wish me luck!

And Many More
Now there are so many more education options out there that I didn’t mention, like Skilledup and Coursera, edX, who knows how many others. I’m just going to add a link to LifeHack’s list of 25 Killer Sites for Free Online Education.

Online Learning Tools (Part 1)

I’ve been learning some new skills, because I need to stay relevant in this job market. I have been a technical editor/writer for years, but suddenly that isn’t “enough” to keep a job. So, looking into other things that interest me and mesh with those skills, I picked web development.

Right now is a fantastic time to be teaching yourself new skills; there are loads of resources online, and here are a few:

W3Schools
This site has been around since 1999 and is constantly being updated with tutorials about, well, just about everything! I use this resource all the time, it’s like a Wikipedia of computer information. W3Schools is full of interactive tutorials that give you immediate feedback about whether you are putting in a line of code right or wrong.

Codecademy
This site is much newer that W3Schools, though it also has interactive tutorials. Codecademy takes learning to the “Gamified” level, by giving you badges for completing tutorials, logging in on consecutive days, and other things that help give you the push you may need to really complete a course. They even have a space to post and show off your projects. (Something like a tiny version of Github.)

Udemy
Now this is more of a “Pay to learn” site. I really like this one too. I have invested quite a bit of money — but don’t let the “$199” price tag scare you; these courses are on sale very frequently. And once you sign up they will often give you coupons for items you have wishlisted. This site gives you close to one-on-one dialogue with your instructor, through comments. I can’t say it’s exactly like being in a classroom, but it really has made me work my way through classes and feel like I have accomplished something by looking on the projects. This site offers more than programming courses, everything from “Logo Designing for your Business in an Hour” to “Everyday Mind Mastery” (whatever that is) . Check it out, some classes are free!

A final note: READ THE REVIEWS.
Each of these sites offers classes taught by pretty much anyone who wants to teach you. You can sign up to teach at the same time you sign up to learn. Check to see which class has more star reviews. Read the “This course is using Bootstrap 2 instead of 3 and should be updated” type comments before you invest money. You’ll be glad you did.