Things I learned from being an intern

For the last few years, I couldn’t get any intern opportunity and it was required to graduate. I started to lose confidence until last summer, a startup named Thrinacia gave me an opportunity. Here I am still interning at Thrinacia doing great things with fun developers and able to make contribution.

Thrinacia is dedicating its effort into fulfilling different crowd funding needs. We give you all the tools to create a website that matches your theme or ideas with full crowd funding capabilities. I am a Front-End Developer on Thrinacia spending most of my time in AngularJS. To be honest, at first it was pretty scary. I have done some sites in HTML, CSS, and JavaScript here and there. I have built a site that worked like an Instagram photo filter with keywords (which was just done using their given API), set up an e-commerce site in OpenCart and WordPress, and an online chatting site in NodeJS. It was pretty satisfying seeing I could actually create stuffs but I realized I was sort of in the dark because I wasn’t aware of what best practices were, what better design patterns were, etc. Advices to other junior developers like I was at the time:

1. Ask Questions

One thing I have found in such industry is that people tend to like to share. They will solve the problems with you, share with you how they solved similar case before, or what their opinions are on particular framework. All it takes to access those information is to ask.

2. Continue Learning

Being a developer is exciting and it can certainly feel like a dream comes true. However, don’t let it get over your head. Take front-end for example, there is a lot, I mean A LOT, of contents to get hold of if you would like to be well-rounded and able to produce production-ready code.

3. Just Try

If you think you have a solution, just lay out the structure and start coding to experiment whether your assumption is correct or not. Unless you are confident your theory is correct and proved, otherwise you should not be learning by guessing the code.

As mentioned above, the main technology stack is AngularJS. It is a fairly sophisticated JavaScript framework for Model-View Controller style one-page application. There have been many people adding new features, modifying functions on the same project. The skill levels were not even so the code quality, as a result, varied a bit. One of the things I have learned from this is to be patient. Being patient for both reading high quality code that I may not understand at the time and spaghetti code that could have been refactored into a more readable code. The other thing I have learned and is probably the most important point every developer should have in mind: framework is not everything. Just because we are using Angular does not mean you can use Angular for everything or the bug is with Angular. From my understanding of Angular and jQuery, if you need operation around pure DOM control, then you can use jQuery to achieve the effect. However, if you whatever you are doing is around data, then it would be Angular’s job as it controls DOM according to the data such as displaying it in a list, change the color if such data exists, or display this text as depicted in this data. If it’s none of the above, for example the property in an object changes for some reason, then it’s just plain understanding for how JavaScript works.

Useful skills to have before graduating or as junior developer:

1. Able to Adapt

The context can be for different languages, or different people to work with. Having flexibility can get yourself to flow a bigger water, especially in an industry where things change quickly.

2. Multiple skills with one specialty

You maybe really good at JavaScript, but if given a project in, let’s say Python, you should be able to take the challenge. However, if you are good at a lot of things but not specializing in one. You may know JavaScript but you don’t know what Prototype means or what function scope is. Your skill level may just stall at a beginner point and can never pass that.

3. Be humble

I keep reminding myself that: I may know a lot but there are still a lot more I can learn. This idea keeps reminding me that I should not be satisfied of what I have. The more I learn, the more I don’t know.

These are just some things that I have learned when being an intern and I would like to share with you. Right now I am in charge of making an Android app for the company. If you have any opportunities, you can contact me via Twitter.