Friday, June 26, 2015

Updates



Ok so I took a little hiatus from blogging, but I assure you I have not taken hiatus from coding!

I’ve been busy while I was gone…
  • I’ve been putting painstaking hours into trying to understand EmberJS.
  • I’ve been taking courses on how to draw and animate with JavaScript (so fun!)
  • I’ve finally learned Bootstrap.
  • I’ve been finalizing designs for two actor portfolio websites.

Now that my summer vacations are over, I’m ready to get serious with my career-changing plans again. I’ll be posting more of my findings very soon.

Wednesday, June 3, 2015

Enter the JS Universe



Last night I managed to get out to another tech meetup to learn about various front-end development tools and techniques. It was really awesome to sit in a room with a bunch of coders, and listen to them discuss things that I have so far only been reading on forums. It really pumped me up, and I just can’t wait to be a part of a team!

I am baffled by how expansive the universe of JavaScript really is. Lately in my studies it seems that I open door after door to new concepts… new frameworks… new techniques. Last night, I found myself just writing terms in my notebook which I didn’t understand at all.

The page is covered with notes like “What does .map() do?”, “What’s NPM?”, and “splats??”

I learned last night that JavaScript can now be used to make installable iPhone applications via JSX – This was very encouraging to me, as that only opens up more options to where I might land at the end of all this hustle.

It’s really exciting to dive into a new world like this. It’s like exploring a different world that’s inhabited by this thriving and complex civilization who call themselves “developers”. I’ve still got a lot to learn!

Saturday, May 30, 2015

Framework, Library, API - What Are You!?

 
If you’re new to programming like me, you might be lost in all the labels. As I’ve studied, I’ve heard so many different labels tossed around — Framework, Library, API, Toolkit… they seemed to be used interchangeably. Then when I had an expert proof-read my resume, he told me “JQuery is a library not a framework, and AJAX is more of a technique”. I realized I needed to study a little bit of vocabulary here.

Well here’s what I understand, based on my research:

A Framework is like the skeleton of your software or website, it dictates the architecture of your software. Like the frame of a car, it’s typically a pre-designed template to support whatever it is you’re creating. Examples of frameworks: Bootstrap, Ember.

A Library is a bunch of code that you can easily use when developing any application, without having to focus on all the details of its inner workings. Libraries make development quicker and easier. Usually libraries focus on specific tasks, and don’t include all the services necessary to run an application like frameworks do. Examples of libraries: JQuery, Sass.

A Toolkit is similar to a library, in that it is a set of code that can be used for specific tasks. Toolkits are supposedly not so popular anymore, since libraries are now the preference.
Example: Dojo

An API (Application Programming Interface) is essentially the documentation, or the rules that govern a framework or library. You follow these rules to use a library correctly.

It seems that most of these resources clearly define themselves on their respective websites. Some seem to be oddly categorized though, for instance Angular defines itself as “a toolset for building a framework”, but I’ve also heard it referred to as a library. I suppose at a certain point the vocabulary becomes natural.


References

[1] http://stackoverflow.com/questions/3057526/framework-vs-toolkit-vs-library

[2] http://stackoverflow.com/questions/8772746/difference-between-framework-vs-library-vs-ide-vs-api-vs-sdk-vs-toolkits

[3] http://cs.lmu.edu/~ray/notes/toolkitsandframeworks/

Monday, May 18, 2015

Order Of Operations



When I decided to start exploring coding as a career, one of my first google searches was "what is the best order to learn programming languages?" This led to a ton of forums containing arguments about what the best order was and I never really found a solid answer. I was recently reminded that I'm still struggling with this order of things and having to back-track in my studies all the time.

A couple days ago in a meeting with a tech startup, I was told a little bit about what makes their website run. They told me I would be welcome to contribute to their project and learn from experience but first I should learn a JavaScript library called ember.js.

I ran home, found an ember tutorial, and dove right in. Then of course I saw the warning: "Before learning ember, you need to understand AJAX and JSON." I needed to back-track a bit to get through ember.js the right way.

Throughout the past six months of self-teaching, I've found that back-tracking like this is inevitable. Without any sort of course structure or counseling, you're faced with the challenge of not only learning the material but also figuring out the best way to learn it.

It seems like there are probably about 70 popular JavaScript libraries in use now, and over 1000 listed on JavaScripting.com. (If you're reading this far after May 2015, there are likley more!)

There's no way to be familiar with all the libraries and frameworks, but it seems to me the most important thing is to understand their foundations. From what I understand so far, not only does it help to thoroughly understand the syntax of core languages, but you'll also have a general understanding of what's happening under the hood of each method, and you'll have an easier time debugging issues or finding efficient solutions.

If you're trying to teach yourself web programming like me, I've found this is the best order to learning programming languages:

HTML - learn the DOM (document object model), and how a browser builds a webpage.
CSS - learn how a browser styles and positions elements, and the cascading effect (look into OOCSS for best practices).
JavaScript - the foundation for all the other libraries out there.
PHP - necessary for a lot of server-side tasks like writing to files or databases.
SQL - useful for many server-side tasks and data persistence.
XML - A good introduction to what JSON does better…
JSON - opens doors to work with AJAX pretty efficiently.
AJAX - allows fast, asynchronous downloads of information from server.
JQuery - learn how plugins and chaining events work.

I've learned all these things in a completely jumbled way, going from one to the other, and back again. Knowing what I do now, this is the most logical order I'd recommend going in.

Of course with my currently limited understanding of the industry, I can't claim I'm an expert here. I might find myself backtracking again next week. I'm just excited to continue exploring what else is out there and make some coding magic happen!

Wednesday, May 6, 2015

Hello NY Tech Meetup



One of the earliest career tips I received was to meet everyone I could possibly could, because getting a job today really relies on face-to-face connections. I won't lie... this is not my favorite thing. I'm just not the kind of guy who runs up to strangers to talk about how I'm changing my whole life around.

I'm sure I'm not the only shy coder out there. As someone from an entirely unrelated background, of course I feel like an impostor amongst the pros.

Well after weeks of anticipation, I finally attended my first Meetup — the NY Tech Meetup. It was probably the best grand entrance into a new community, with hundreds of attendees, the Skirball Center auditorium at NYU was packed to the brim!

Presentations included many very interesting startups, from furniture marketplaces, to language education, health, and even a cool AI personal assistant for your e-mail account.

There was lots of mingling, schmoozing and bumping elbows. I learned a lot, trying to be shameless about how green I am. Regardless, everyone I met was understanding of my position and very supportive. So far, the support has really been a warm welcome.

If you're like me, a newbie in such an advanced world, don't worry too much. Ignore those nervous thoughts and just pretend you belong, even if you don't believe it. Work out your elevator pitch, commit to a meetup, and put on a mask. You'll soon find that you won't be pretending anymore.

Afterwards there was the added perk of free alcohol and cake! I suppose I can muster the courage to mingle if cake is involved. 😝

Monday, April 27, 2015

Symbol Stars



I’m on a 5-day video shoot this week, so squeezing in time to code is quite the challenge. Early this morning as I sipped my coffee, I played around with CSS box shadows for the first time, which I have to say is pretty cool!

Though not at all complete, I pushed my results to GitHub as a work in progress. Check it out here!

This is an experiment to create stars out of ancient symbols and characters, which will be a part of the interactive documentary I’m working on.

How it works

Box shadows can either be made to look realistically like shadows, or they can be colored to create some interesting glow effects. The advantage to using them is that they take the form of whatever your box is in. So a round box will produce a round “shadow” or in my case, glow.

Best of all, they can be stacked to create multi-colored glows effects!

The HTML is very basic:



And here is the CSS:



There’s a lot more detail about box shadows at this website: http://codersblock.com/blog/creating-glow-effects-with-css/

For my experiment I chose the $ symbol because you know… the effect is money baby!

There are a couple major problems with this. First is the glow doesn’t appear like it’s coming from the $, it appears like the $ is stamped on a white ball that’s glowing… not what I was going for. Further than that, Chrome currently is very buggy with box shadows, so it’s not cross-browser compatible at all.

This is all I could accomplish today, but it was a good start.

Upon further reading, I believe text shadow would be a better choice as it would render shadow around the symbol, not the box. It would just mean the symbols I’ll be applying this to would then need to be designed as an icon font… something I have yet to learn. So these are my next experiments.

UPDATE: I've since completed this and it's all up on github here: https://github.com/nateplusplus/Star-Text

Friday, April 24, 2015

hello_world



I pursued cinematography for 18 years. It was my dream career since I was ten, I got a bachelors of fine arts degree for it, and I was successful enough to live off of it in NYC for six years.

Until now.

Last year I realized filmmaking isn’t for me anymore. I guess at a certain point some passions can really just die, and no matter what I seemed to do (I tried taking on fun projects, vacations, etc)… nothing could re-ignite that flame. I have several theories as to why I lost that passion – I won’t go into them in this post, but my love of filmmaking has certainly been squashed.

So here I am. Suddenly I’m my own person. I’m not filmmaker Nate anymore… just Nate. This liberation allowed me to explore my personality and my interests better and as a result I’ve discovered a new love: Programming.

I think this blog will be many things. It’s a chronicle of a 28 year-old career changer, a resource for beginner programming tips, and a motivation for me to push things out into the world without shame.

So here we go, let the transformations begin.

Learning MongoDB from MySQL Background

Until this point, I've only had experience with using MySQL databases, but I've been wanting to try MongoDB because it has a fu...