Journey through MEAN Stack: Fall In Love With Node

As a lover of all things that pertain to Web Dev with a combination  of being a lifelong learner… I decided to explore something new when I started my new career in the corporate world. Web Dev classes in college heavily focused on HTML5, CSS, JavaScript and a dash of PHP, but not much deeper than that, so naturally I wanted more.

I did research on Web Dev and of course a million and one topics were thrown at my face, but what I did discover was MEAN stack, a fullstack framework for JavaScript and I said, “Lets Do It!” I decided to work through the stack one element at a time, beginning with Node.

If you are not familiar with what Node.js is… let me give you a little background:

  • Node is a server, NOT A FRAMEWORK, that executes JavaScript. So essentially you can run JavaScript outside of a browser. (Ooooh Goodie!) This is awesome because JS is a pretty easy language to pick up and learn. That means just one fairly simple language is being used when doing front-end and back-end development.
  • Node.js uses an asynchronous architecture. Now why is this beneficial? When developing a web app that is I/O heavy, Node is able to handle thousands of concurrent connections without much overhead.
  • Node.js is FAST! Using a V8 JavaScript Runtime Engine, makes Node faster than Python, Perl and Ruby.

Also when getting to know Node, you should familiarize yourself with npm. Npm is a continuously growing package manager that is used for almost 99.9% of all Node projects. It does contain many packages for other frameworks and technologies that are JavaScript related. Npm is an easy way for developers to create and upload their projects and packages, as well as downloading them for future projects. It may be almost impossible for you develop a Node.js project and not use npm at all. So just by creating a Node project, you will definitely get all the npm practice you need.

Now that you have gotten to know Node a bit more… lets start loving it. There are several resources that can get you started on Node.js. My personal journey went like this:

  1. Log on to Nodejs.org and read up on it. Learn more about it, how it started and where it is going. The site can help you truly determine if this is something you are truly interested in.
  2. Head over to Nodeschool.io, where tutorials on all things Node can be found. From the basics of JavaScript, to how to use npm, all the way to more advanced programming styles and libraries of Node. NodeSchool is also good for finding Node.js workshops and meetups in your communities.
  3. Buy a book! It is always good to read up on things that interest you when you have some spare time. My book of choice was Node.js in Action. It is a good read that explores a lot of the fundamentals of Node and it is actually not that expensive. I found my copy on Amazon but I am sure there are many other places it can be found.
  4. Build something basic. There are very basic project tutorials that can get you started understanding the dynamics of Node. The most popular ones I have seen are the Hello World project and The Chatroom app. Many blogs, books and sites have various versions of these simple apps, so a simple Bing or Google search can help you find one easily.
  5. Build something on your own. Continue to build projects of your own that will help you reinforce your knowledge on Node, and of course it will help you to continue to learn

Though it may not replace other back-end languages, Node.js is definitely on the rise and is continuing to have a growing community that hopefully you become a part of! Below I added a few other resources, such as books and tutorials that may also be of help. Stay tuned for the next post on the Journey through MEAN Stack, I will be delving into the Express framework and you don’t want to miss it!

Happy coding 🙂

Resources

http://socket.io/get-started/chat/ (nice and easy chat room tutorial)

www.codeschool.com (great for tutorials)

www.tutorialspoint.com/nodejs (also has tutorials but I use it for reference purposes)

nodeguide.com/beginner.html (also used for reference)

www.infoq.com/presentations/nodejs (A great video that can be used to understand asynchronous programming)

visionmedia.github.io/masteringnode/ (An eBook on Node)

Advertisements

Women In Tech: What A Myth

“You don’t look like a software developer”

If I had a dollar for every time I have heard that statement my pockets would weigh heavy, full of the extra money I’ve made (and I’m sure many can relate). I first noticed the lack of women in this industry in my Data Structures and Algorithms class at Florida State. Slowly but surely through the semesters, the female population died off in the conquest to obtain a Computer Science degree. Either they were never truly CS majors, and only had to take Programming I and Object Oriented for their Actuarial Science and Computer Criminology degrees; or they got to Object Oriented and said, “Information Technology seems to be a lot easier.” And there I was in a room of 100+ students and I was 1 of 5 girls. Swell. But I fought until the end and it sure has become a true passion of mine.

The battle wasn’t easy at all. Doing group projects with people who undermine your intelligence, or even having teachers and employers doubt your capabilities can be pretty discouraging. But I will never forget the day I announced my job offer with Microsoft. Its like time stopped. The stares were the funniest part. Some people looked confused, some looked surprised and others were just in awe.  

“You….. got a job…… with Microsoft?”

It was probably the most triumphant day of my undergraduate career. But that feeling does not compare to the feeling of finding out the myth of women in tech is true! We are real, we are smart and we are a force to reckon with. When you find someone who understands your struggles but is just as passionate as you are… it works wonders. The constant inspiration of “she did it, so can I,” has constantly been a driving force to me. Currently I am blessed to be a part of a team where women are dominant figures and are really making a difference in the field.

So to all the women out there who love technology, innovation, and get excited at the thought of setting up a circuit board, who are creating a new web app or simply innovating in any way possible… Thank you. You are all paving the way for girls like us and continuing to be a much needed inspiration.

Tech Jobs for Dummies: The Guide To Successfully Transition Into Your New Technical Role

Welcome Dummy

Well hello there…. Lets start with the first and foremost lesson of this post: you are NOT a dummy. You did something not everyone can do, and that is land a job in a technical role. Whether it is full time, an internship or you are self employed, your ability to become proficient in some technical field, whether it is programming, engineering or mathematics, got you here today. If you leave with anything after reading this post… leave with that.

Lets get started with a confidence booster.  Always keep in mind that many people have applied for the same position you now have. Some may have been more _____ (fill in the blank) for the job and some may have been less, either way.. you are the one they picked. YOU ARE THE ONE THAT IS HERE. Do not doubt yourself. Don’t be a victim of the imposter syndrome! Get rid of the negative and move to the positive. Next be excited! You are starting a new chapter in life (A profitable one, I might add). Go into this new role with excitement, passion and be ready for anything.

Be A Student

Ok pep talk over. Now on to the nitty gritty. As you begin your new role many things are thrown at you: meetings, colleagues, projects, blah, blah and more blah.  It will be a lot to take in but you need to focus. First get acclimated with the technologies you will be using. This can be a certain programming language(C#, Java, HTML, etc), a certain type of software (MATLAB, CAD, Photoshop, etc), or even any hardware you may be working with (circuit boards, mobile device, CPUs, etc). Some jobs may have formal training with the technology of use and some may not, either way take your work home. Your first 3-6 months of your technical role should be consumed by your job. After hours, take some time to review what you did at work, and look more into the technology of choice. There are a million books, online publications, tutorials and other research materials that can show you things that you may not have known about before. No matter how proficient you are in a technology, there is always so much to learn, and always room to grow. So for some time, you may feel like you are back in college, studying and doing assignments all night… but in the end it will all be worth it.

Expectations and Goals

It is very important that in the first few weeks of your job that you have some sort of sit down with your direct manager/boss. In this sit down, be sure that your manager clearly explains all that is expected from you in the role, and what kind of growth he/she would like to see from you. It is also not too bad to receive some sort of a timeline that ranges about 3-6 months, where your boss can tell you what you are expected to achieve by each month. After you get a little more comfortable in your role, set some goals for yourself. But do not keep them to yourself, be sure to share them with your boss in another sit down, just to be sure that your goals do not set you astray from your expectations. Being on the same page as your boss is very crucial.

Find a Mentor

No one in life ever has all the answers, but many people in life have already experienced things that may be new to you. Especially in a technical role it is hard to have any answers at all when you first start. Find a mentor that is:

  1. Relatable. You want your mentor to either be in a similar role or one that has been in your role for awhile.
  2. Easy to talk to. Communication is key! You want a mentor that is able to explain things to you clearly and is always willing to hear you out.
  3. Willing to help. Not everyone has the patience or time to help someone out frequently. You want a mentor that is willing to give you some time on their calendar and/or willing to answer any small questions on the fly.
  4. Reliable. You should be able to trust that your mentor will always guide you down the right path and have your best interest in mind at all times.

Mentors are not always the smartest people in the room, or the ones that always seem to have something to say. Sometimes your mentor could be an office space down just waiting for you to say hello and you never know. Do not fear asking various colleagues about what they have worked on and what they have achieved, so that you can find the mentor that seems right. Take your time and be sure the mentor you pick is the best fit for you.

Network

Whether it is a small chat in the break room, or a long conference talking about new ideas, meet new people! The company you work for is not just the team you see everyday (unless you work for a startup.. then situations may be a little different), so it is always good to reach out and meet new people in other departments. It is always nice to hear what others are working on and be able to share your accomplishments as well. Networking will expose you to a vast number of experiences and people you may not have even realized existed in your company. It can also come in handy when looking for new projects to contribute to or other departments to explore in your future. Networking is one of the first steps in spreading the word about latest and coolest brand out right now, thats YOU! Word of mouth is a powerful tool and the more people you get to know, the more others may want to know more about you.

Surround Yourself With Those Like You

We all have friends who may be doing completely different things than we are. You know those friends that look at you like you are speaking a foreign language when you are trying to explain to them how well your project at work is going. Those friends give you an opportunity to really test your knowledge and teach someone a new concept. But what about those friends that challenge you!? It is important to have a small group of people you can talk tech with just to always keep your mind stimulated in and out of work. When you surround yourself with those who think like you, the possibilities are endless. The ideas that two technical people can create are almost mind boggling. Im not saying this has to be your everyday group of friends, but maybe just some people you have lunch with or sometimes catch a movie with. This will good for you, to bring in ideas to work, or implement something new you discovered with your tech friend and apply it to your current project. Technical friends rock… get some!

And with all that said… I am a newbie, just like you. This post is a combination of advice that those before me have given to me, and somethings that I have learned for myself. If you have any comments or questions, feel free to add them 🙂