How to Study Hard

Today I’m writing from the Cleveland Game Dev Meetup. This month we’re meeting in the Mayfield Public Library.  Strangely, both times I have come to a Meetup, my GPS has tried to tell me the destination doesn’t exist.

I’m listening to someone explain how Construct 2 is a great platform, and comparing it to Pulse. I wanted to ask someone his opinion of Ableton as a music DAW. But I’m not really getting any code written! I have to admit, I haven’t really touched the Unity tutorial I started last Meetup, and it has been a month. Now that I’m done with my code bootcamp, WCCI, it feels weird to not be working hard on anything in the evening after my day job. I really need to pick up some side project.

You’re right, I did not finish Identiflora yet. I was originally going to work through it as a .NET project, but now I’m not sure if that is the best idea. (Did I say this already? I feel like a broken record.) So in lieu of really “working on the big passion project”, I am working on some smaller things.

I still feel like I should be learning on CodeEval, but it is admittedly pretty dry. So I am excited that I just found Codingame – it is like CodeEval, full of problems to solve using your coding skills, but these are couched like games. It’s really a fun concept, even if it’s still hard work. Speaking of “hard work disguised as a game” I am also enjoying Human Resource Machine by Tomorrow Corporation, the same game company that made World of Goo. In Human Resource Machine you program (using a pseudo coding language) people to take certain integers and drop them into certain boxes – yeah you are really doing the same loops and if/thens that you would be learning in CodeEval, but giving it game trappings makes it fun!

I guess not everything can be made easier and into a game. I really enjoy listening to J. Vernon McGee. He is gone now, but his radio program is now a podcast, and it takes you through the whole Bible, verse by verse, over the course of five years. I once heard him say (and I think he was quoting but I don’t recall whom, sorry),  that if you are having a hard time with a Bible passage, because it is dry and hard to understand, you have to moisten it with the sweat of your brow. Hard work is hard work! But it leads to deeper insights.

That goes for coding too.

 

Launch House Game Dev Meetup

I have made and sold art for years and still have a hard time (sometimes) calling myself an Artist. So I feel almost funny being at a game development meetup when I have never even tried to make a game. It isn’t “impostor syndrome” it’s just, I’m not sure if I am passionate about it. Not sure what I bring to the proverbial table. But I am here today, at the Shaker Launch House, with about 10 other people working on their own games. I don’t have a specific game idea to work on, but I brought art supplies and am working through some Unity 3D demos. In fact, I watched a lot of tutorials yesterday on beginning game development, and they said the important thing is to “start making a game out of what you can do” as opposed to “start with a great idea”. If you start with a great story to tell, and it is leagues out of your capacity to tell it, you will get stuck and quit. If you make a game that is just “two dots moving” (or..something), then you can actually finish a thing and then move on to the next one with one complete project under your belt (and experience).

My favorite games are ones with interesting characters and stories, and honestly, most of them are 2D not 3D. (In fact, I still like interactive fiction/text adventures.) But Unity does 2D as well. I should learn 3D since I sculpt and I’d like to see if I can print something in 3D. So many skills overlap!

I’ve always wanted to write and illustrate stories and books – art books? nature books? field guides? story books? I just love books. I did not really think about making games (I feel like all of my friends have always wanted to make games). I’m still not sure it is my platform, but I really want the experience of learning new things. And good games tell stories.

IMG_1158
Launch House Angel?

 

Plants and Database Design

I’m still working on my web app, Identiflora. As I work I’m referencing both the National Audubon Society Field Guide to Wildflowers and Newcomb’s Wildflower Guide. Both books mean a lot to me. I remember when my parents gave me the Audubon book as a teen, and it has been trekked around and loved, and dropped in water so I am probably due for a new copy. The Newcomb’s was my friend throughout Plant Taxonomy class in college (my favorite class!), and is still my favorite plant guide.

I am loosely basing my plant site on the questions proposed at the beginning of Newcomb’s key system: Flower shape (simple symmetrical petals? irregular shape? composite like a dandelion?), plant shape (leaves opposite? alternate? whorled?), leaf shape (simple or compound, toothed or divided or entire?).

In order to make an MVC MS SQL relational database of plants that a user can easily navigate, I need to consider these questions (and the answers). It will help me determine where to split up my database for data normalization. If the only options for plant shape are opposite, alternate or whorled, a table with a column of  records reading “opposite/opposite/opposite/whorled/alternate/alternate” is very redundant. This breaks the DRY principle (Don’t Repeat Yourself). Splitting that into a separate table of only those three options (opposite, alternate, whorled), makes the data integrity of the overall database much better.

I’m just a novice at database design; I’m excited to learn as I go!

On the.. What Week Is This? Week of Bootcamp

It has been too many weeks since I updated. Summary: We Can Code IT is both difficult and rewarding.

This code school is experiencing some growing pains, and I’ve benefited by being introduced to a lot of great instructors, as the list of instructors keeps growing: Mel McGee (the CEO of WCCI), Lauren Holloway, Jarryd Huntley, and James M. Allen. We even had a guest presentation by Susie Sharp, and resume coaching by Patti Substelny.

Create! Make things. You will learn so much. And you won’t get it all right the first time, so fail fast and keep going, and getting better. And Make connections.

Now, nearing the end of the course, I am working on both a portfolio page, and a passion project. I’ve talked about the passion project (Identiflora) before. I don’t think the current version is going to look anything like it did in my head – but I will keep improving it in the future, I just need to get a MVP (Minimally Viable Product), as ‘they’ say. Creating something is better than creating nothing!

In fact, that is the first part of my takeaway from this: Create! Make things. You will learn so much. And you won’t get it all right the first time, so fail fast and keep going, and getting better.

The second part is: Make connections. I have made a lot of connections with the coders in my cohort, and the instructors. And there are hackathons and game dev meetups and other coding opportunities around here that I need to get involved in. Anyone who is farther along in the coding journey can help you when you start down that path. They might be able to shave hours off of your coding snarl, or introduce you to someone who needs your help, or someone with a job offer. Coding sounds like an isolated-in-a-basement-drinking-coffee-all-night career, but in reality you can only thrive and progress when you reach out and make connections.

Addendum: Keep Going In Spite of Rejection

I am listening to to Writing Excuses podcast, and they just said something that I really wanted to add to follow up the post I made on failure.

“There is no easy way. This is so much harder than you think it is going to be. Do it anyway because it is so much better than you dream.”

– Howard Tayler.

“Rejection is not negative-validation. You should not be requiring external validation to continue working on your craft. Keep writing. Those things you are tempted to see as negative validation will happen throughout your professional career, and if you can’t write while this is happening, you will have a problem. Learn how to keep writing.”

– Brandon Sanderson

On Quora I have been seeing some negative comments on the likelihood of becoming a web developer in mid-career.  While that may be true, I am going to take these writing quotes and apply them to everything. I know I crave too much validation (I have been compared to Rarity, I’ll let you Google that one.) I want people to say my art is pretty and my story is cute and pat my head over the tiniest thing. No one but your mother will do that in the real world (though, on the Internet you can surround yourself with a circle of people who always like your work, but that’s just a bubble).

Anything worth doing is going to be hard – right at the beginning of Eloquent Javascript it points out the difficulty of the journey. As David says in 2 Samuel 24:24 you can’t offer up something that costs you nothing and expect to reap blessings from it.

Everything takes hard work.

Living in a State of Failure

That may sound like a very depressing title, but keep reading.

I’ve been listening to Code Newbie podcast, especially Episode 60, Impostor Syndrome (an interview with Alicia Liu). I, according to the episode, really don’t have Impostor Syndrome. Few people do. She’s pointed out that it has become a buzzword. Right now my feelings of “code inadequacy” are not from any syndrome, they are from learning new stuff. Of course I am not good at new stuff, I am still struggling to learn it!

That being said, I do wonder if “this is the right thing to pursue”. Alicia Liu does touch on this, that while coding is the new hotness, it really isn’t for everyone. The thing she said that resonated with me, is that coding as a job is (paraphrase mine) living in a state of failure. Nothing you code is going to work right the first time. I think it’s good to know this going in. I am kind of a perfectionist. I don’t like failing. I don’t like error messages. When I was a full time technical editor/writer my goal was to comb every document so well that the QA department wouldn’t find anything to bleed red ink on. But, after years, I finally realized that when someone marks everything you did up and changes it, it really isn’t personal. A second set of eyes is always going to see things to change, or point out how they would have done something differently. I’m still learning this, honestly, it’s hard to get it to sink in. But I’m hoping that this will help me for code reviews in the future. Knowing that your ugly code is being changed, not because you are a failure, but because that’s part of the process, and that you’ll get better with time. The code is still going to get thrown out, but it isn’t a personal attack.

What do you think?

Odin and Cold Turkey and Focus

Mt Rushmore
Mt Rushmore Looks Just Like I Expected

Well I haven’t blogged for a long time, and for this I apologize! In September I took some vacation time and went to South Dakota. It was gorgeous, and the weather was amazing! (I also went to Salt Lake City Comic Con.) But I’m not going to turn this into a “someone else’s boring vacation photos blog”.

I also have been, in October, participating in Inktober. Participants create (or are supposed to create) an original ink drawing every day in October. I didn’t manage to do all the days, but I had a good time anyway. If you want to see more of my art let me know in the comments.

Prince or Frog?
Prince or Frog?

 

 

 

 

 

 

 

 

I spent a few days re-evaluating my study path. I’ve been frustrated by Udacity and have canceled my subscription (at least for the time being). In the interim I’ve discovered The Odin Project.

The thing it offers (and Udacity also offered this) is a plan. I must face that you can’t learn an appreciable amount of web development skills just by noodling around taking online tutorials. I really need a path and a plan. I just don’t have self discipline. I’m sure some people have learned this way, but it doesn’t work for me.

Another useful thing I have discovered is Cold Turkey. It’s a program that helps you focus on what you are doing, and not spend all day reading random things on Twitter and Wikipedia. (Oh yeah, that focus and plan thing.) I’ll let you know how it is working.

A final kick-in-the-pants motivation tool is basically everything Shawn Blanc ever wrote. He has a course on living a focused life. I haven’t taken it, yet, but I get his motivational e-mails, and they are always full of passion and challenge! You may enjoy them too.

Game Development, JavaScript, and Persistence

Well, this week I have been taking a break from my Udacity project (in a sense) by strengthening my JavaScript and HTML5 Canvas understanding before going back to tackle FEND “Project 3: Frogger Clone”.  Here is some information that has been helping me:

Zenva has a class on making an HTML5 game from scratch. The instructor is fantastic and goes over every line of code. I highly recommend this.

After that course, I went back to my Project 3, and felt I understood a bit more of the direction I should take it. But my core knowledge of JavaScript is still lacking, and I didn’t know how to actually get from point a to point b. Currently I am working my way through Eloquent JavaScript by Marijn Haverbeke, seriously this time, taking notes, working through the exercises in the provided code sandbox.

As I am working through Eloquent Javascript, sometimes I have been hunting up further resources to explain the things in it. For this I am greatly indebted to JavaScript Is Sexy.com  even if the name makes me die a little bit inside.  Get a load of this explanation of Variable Scope!

This week I have discovered a really great podcast, too! It’s called Lostcast by Lost Decade Games and is all about game development. It’s from a very realistic perspective, unlike some of the other podcasts I’ve found.  You can join their forum too, they are great guys. They have encouraged me greatly with art tips.

Lately I’ve felt like I’ve had to concentrate on studying coding, and leave my art and craft skills to rot on the back burner (…that’s a kind of mixed metaphor). But it sounds like there are plenty of reasons to keep honing both art and coding hobbies together. Thank you Matt Hackett! I also look at Rob Stenzinger, another “coding artist”. Also add The John Su to the list of “coding artists I admire who are far more talented in their sleep than I am while concentrating very hard on something, like coding and art.” It’s a surprisingly long list.

Finally, here is a very informative blog post explaining what an entry-level front end (mostly JavaScript) developer really should understand in order to get a job.

I feel bad that all I do is link you to other people, but all these resources are  really great and I want to pass them along!

 

 

 

Continuing JavaScript Education

I am still working on learning JavaScript. It’s hard. But I’m not alone in the struggle.

There will be times when reading this book feels terribly frustrating. If you are new to programming, there will be a lot of new material to digest. Much of this material will then be combined in ways that require you to make additional connections.

It is up to you to make the necessary effort. Take a break, reread some material, and always make sure you read and understand the example programs and exercises. Learning is hard work, but everything you learn is yours and will make subsequent learning easier.
– Eloquent JavaScript by Marijn Haverbeke.

I have found some good resources in books.

  • First, as I just quoted up there, Eloquent Javascript by Marijn Haverbeke. It’s great, and it’s free online.
  • JavaScript for Kids by Nick Morgan (so good!)
  • Beginning JavaScript 4th ed by Paul Wilton and Jeremy McPeak
  • Secrets of the JavaScript Ninja by John Resig and Bear Bibeault
  • A Software Engineer Learns HTML5, JavaScript and jQuery, by Dane Cameron
  • Thinking in Javascript by Aravind Shenoy, and
  • Mastering Javascript Design Patterns by Simon Timms.

Not one of of them have I completely finished reading, but I think they were all good resources and I don’t regret any money spent on them.
I wish I had them all in hardcopy print; trying to read for comprehension on a Kindle is just not the same.

Now, once I had randomly purchased some of these books, I realized that you can’t just dive deep into code books indiscriminately.
I purchased Mastering Javascript Design Patterns optimistically thinking “hey this is an O’Reilly book, it must be awesome” and not realizing that it has a big disclaimer that you should really have a strong grasp on JavaScript before you actually use the book.

So, I suggest, start by reading Eloquent Javascript online (or purchase it!). Also JavaScript for Kids is fantastic – that one is really the first one I picked up. it made the language seem friendly.

My personal trouble is that I haven’t yet learned how to “think like a JavaScript programmer” and I am not good at breaking a complex problem down into bite-sized chunks that I can tackle using the JavaScript tools in my belt. This bothers me. This reminds me of all the classes in college that caused me to get out of Engineering. I just don’t intuitively have the problem-solving gene, or whatever it is. But that quote at the beginning of Eloquent JavaScript gives me hope.

When you are struggling to follow the book, do not jump to any conclusions about your own capabilities. You are fine—you just need to keep at it.

I have an idea

While I am still working on Udacity classes, I really want to start working on my own personal project. For years I have been passionate about plants, especially identifying wild native plants. You can probably tell, since most of the photos that make it into this blog are plants.

In college plant taxonomy was by far my favorite class. I loved that class. It was just four guys, the teacher, and myself. In retrospect my final project was “sort of phoned in.” It involved going out to a nearby park, several times a week over the course of a few months, and documenting the growth of the spring plants, and the seed dispersal methods they each used. I really didn’t take personal observation seriously, and at the last minute I sort of “Alta Vista-ed1” for a good part of the information. The way I didn’t pursue my college classes with my whole heart still bothers me, and that’s why I really want to complete this Udacity nanodegree. I want to prove to myself I can work hard at something difficult, and push through, and complete it.

But back to the plants.

I love plant books!

I want you to see wildflowers as your friends.

While I know other plant ID sites and apps already exist, this one is going to be my own. Everyone starts with a first project, and, yes, this may be ambitious, but it’s a topic I really enjoy. Ideally, I want to code the web app, sketch the art,  write the text, and take the photos of the plants. Now that probably isn’t going to be exactly how this works out, or else it would be a site that only helps you identify plants that live in my back yard. But it’s a dream, goal, and working idea.

Indentiflora_2015So Identiflora.com was born. If you go there, there is nothing to see. I won’t even link you to the  boring parked page. But I registered the name and drew a little app icon.
I’m excited about this!

 

1That’s what searching was called before it was Google, and after it was Lycos.