alvincrespo

This is my personal blog. Backoff if you don't like it.
Recent Tweets @alvincrespo

Let me start by saying that becoming a professional is a very difficult thing to do for many people - including myself. I wouldn’t say that I am a professional at what I do, instead I am on the path to becoming a professional. To become a professional one must form several core values, and these should help you along to achieving your professionalism - whatever that may be.

Being happy with what you do.

Whether you are an artist, graphic designer, developer, software engineer, scientist, anthropologist, chemist, psychologist or a plumber - the work you do to sustain yourself is a job. “Job” usually has a bad connotation for many, and that is completely natural. Would you really want to paint another canvas in order to buy your next meal or support your children, or would you rather spend time with your children playing frisbee at the park?

Only a very few people actually gain happiness with the work that they do. It was interesting to me that I was very interested in computers until I had my very first job. Working 60+ hours a week, sitting a computer and staring at a screen while wanting to be at home with my fiance cooking, laughing and sipping on wine. I would have never known that life would be that way. The question isn’t whether your job makes you happy - its about you making the decision to be happier with the work that you do.

Professionalism - What does it actually mean?

If you’re an artist, someone buys your art because it provides some sort of stimulation. Similarly if you are a designer, developer, scientist or any other field - someone pays you to provide the best quality service you can provide.

Since I am a developer, I get paid to make the best code possible while delivering a product on time, at budget with no bugs. These are services my employer and previous employers have paid for. However, this is a small scale view of professionalism. 

The Merriam-Webster dictionary defines professionalism this way:

characterized by or conforming to the technical or ethical standards of a profession (2) : exhibiting a courteous, conscientious, and generally businesslike manner in the workplace

Lets analyze the above definition carefully. First it says that a professional is characterized as someone that conforms to technical or ethical standards of a profession. This essentially is telling us that as a professional we are sticking to standards set within our profession. What does this mean? Well, we all strive to do the best at work and when we do the best work - we feel amazing and these feelings of quality and completeness help us become happier with what we do, thus extending such feelings to other parts of our lives.

The second part of the above definition states that a professional is courteous, conscientious and “businesslike” in the workplace. This struck my profoundly as I would never have imagined that professionalism would indicate that I need to be courteous and conscientious towards others at work. We don’t see this very often within the workplace - especially in my field at startups and traditional agencies alike. This of course is changing for the better and I greatly welcome it. We want to be treated generously and we want others to feel for us, especially when times are difficult, and to be professional we extend and received courtesy and conscientious behavior. It is the only way to be happy about our work and happy about the people we work with. This helps build bonds that last during the happy and sad times at our jobs - bond that help contribute to our happiness as it extends our social circle.

Here we can see that becoming a professional means two things; one, we must follow the technical and ethical standards of our profession and two, that extending courtesy and conscientious behavior is essential. These two properties of being a professional strengthen our feelings of accomplishment and extend our social circle at work.

Core Values and Professionalism

As I mentioned before, core values help us achieve professionalism in many ways. But let me tell you - for a very long time a core value of mine was money and that was all. If you think money is your core value - you should reset shift your view. 

When I first started to work I was excited, being a fresh graduate I was excited to stop eating pasta and looked forward to the money so I jumped into my first offer. There were no Health Benefits but I was working off the beach. It was terrible. Little did I know that one should never sacrifice their own self being for money and the pleasure of seeing the Pacific Ocean. On top of that I was working for some really inconsiderate people who thought working 80+ hours and developing a five flash sites over 3 days was the way to go. In the end I was fired, not not because I did anything wrong but because I had E.Coli, and the best part was that the CEO didn’t know what E.Coli was.

Good thing I got fired, but I still stumbled with the first few jobs I had. There were many misconceptions in my head about my field and where I wanted to go. This all changed when I set core values for myself. Some core values I have are:

  • Love (Love what I do, Love the work that my colleagues do)
  • Respect (Respect others opinions and views and respond with Respect)
  • Openness (Communicate openly and be transparent)

I am not perfect at these core values, but they are there to guide me and my work. This has helped me along the way achieve bigger and better projects and work with really fantastic people within my industry, and overall I have become much happier about the work, people and my family.

So whats the deal with this post? Well its the first of a series of posts I would like to talk about in terms of being a professional within any industry. This interest has been provoked by two books I have been reading:

Both books are wonderful and helped me shift my view recently and definitely go along with my personal and professional growth within the last two years. I recommend the read as I am sure there are points within these books that can help you out.

ericbidelman:

Some 1300+ lines of code, 106 tests, and a year after I first started it, I’m happy to officially unleash filer.js (https://github.com/ebidel/filer.js); a wrapper library for the HTML5 Filesystem API.

Unlike other libraries [1, 2], filer.js takes a different approach and incorporates some lessons I learned while implementing the Google Docs Python client library. Namely, the library resuses familiar UNIX commands (cp, mv, rm) for its API. My goal was to a.) make the HTML5 API more approachable for developers that have done file I/O in other languages, and b.) make repetitive operations (renaming, moving, duplicating) easier.

So, say you wanted to list the files in a given folder. There’s an ls() for that:

var filer = new Filer();
filer.init({size: 1024 * 1024}, onInit.bind(filer), onError);

function onInit(fs) {
  filer.ls('/', function(entries) {
    // entries is an Array of file/directories in the root folder.
  }, onError);
}

function onError(e) { ... }

A majority of filer.js calls are asynchronous. That’s because the underlying HTML5 API is also asynchronous. However, the library is extremely versatile and tries to be your friend whenever possible. In most cases, callbacks are optional. filer.js is also good at accepting multiple types when working with entries. It accepts entries as string paths, filesystem: URLs, or as the FileEntry/DirectoryEntry object.

For example, ls() is happy to take your filesystem: URL or your DirectoryEntry:

// These will produce the same results.
filer.ls(filer.fs.root.toURL(), function(entries) { ... });
filer.ls(filer.fs.root, function(entries) { ... });
filer.ls('/', function(entries) { ... });

The library clocks in at 24kb (5.6kb compressed). I’ve thrown together a complete sample app to demonstrate most of filer.js’s functionality:

Try the DEMO

Lastly, there’s room for improvement:

  1. Incorporate Chrome’s Quota Management API
  2. Make usage in Web Workers more friendly (their is a synchronous API).

I look forward to your feedback and pull requests!

Javascript is pretty amazing, to say the least. I’m not saying that just because it is my favorite language, only Ruby occupies that space, but because its actually pretty damn easy to learn and apply daily. There are three things that make javascript amazing today:

  1. The community
  2. The frameworks
  3. The support - browser support of course

Now I started learning javascript back in college - Introduction to the WWW - at RIT. It was a great class, not because of javascript itself but because it was the first time I’ve ever had to program, not compile, and see results instantly. Yes, the fact that you get to see what you’ve programmed instantly without having to build your code is amazing. Instant satisfaction baby, thats what counts and thats what clients love.

Javascript itself is amazing; its elegant, simple and just damn great to read - thats if it was done right. When you read javascript, it makes sense. Not like other languages like c++ or objective-c, where honestly if you picked it up and read it, it would be a WTF moment. Now this doesn’t disqualify the language; especially since they are used to build the environments and technologies we use on a daily basis. And if you’re a gamer, you should know that c++ is being used to smooth up those nice little polygons on your TV. So yeah, javascript isn’t everything but at the same time it is.

It comes down to using the tools you need, when you need it the most. Javascript comes to the rescue for most web based applications as it allows you to hit the ground running. Its great for amateurs and a miracle for pro’s. So, learn it today, tomorrow and the next day until the end of the internets. But for now, here are some resources to get up to speed; for both amateurs and pros:

Updating my site to tumblr. - Wordpress was just getting to complicated for the simplicity I demand.

A good analogy to software design is the process of building a home. You would not expect the builder to start working on the house without detailed plans supplied by an architect. You would also expect the architect to talk to you about the home’s design before creating the blueprints. It is the architect’s job to talk to you about the design and functionality you want in the house and convert your requests to the plans that the builder uses to build the home. A good architect will also educate you as to what features are reasonable for your budget and projected timeline.
Beginning C# Object-Oriented Programming by Dan Clark and published by Apress