Messy doesn't mean bad
I heard an audio clip of the ruby on rails creator describing what type of coder he looks for when hiring. He was explaining how he only hires developers whose personal projects contain clean code. According to him this reveals that the coder is passionate about coding and might be a good hire. I disagree with this line of thinking, and here are my thoughts on that subject.
Messy code in personal projects
The way i write personal projects is really fast. The most important thing should be to create a working project as fast as possible. If one of my projects gains large amount of attraction and users, that is the time to review your code and start improving it. You have to accept the fact that most of your projects will never gain any users or attention. Therefore trying to improve a project which nobody will use is a waste of your time. Creating a bunch of them will increase your chances of success.
Shotgun vs rifle philosophy
If you are shooting at a target with a shotgun you have a high change of hitting it. If you use a single shot rifle, the rifle shot might be more powerful but it is much harder to hit with it.
I use the same philosophy with my personal projects. I create a bunch of small messy projects and hope that one of them is successful. If one of them proves to be popular i will start rewriting the code for it. I already made a mistake of dedicating a bunch of time for creating an e-commerce platform. That project went to nowhere, i wont be making the same mistake again.
I am a web developer who is always interested in becoming better. I write about web development and other stuff that interests me.
tiistai 18. helmikuuta 2020
sunnuntai 16. helmikuuta 2020
What i enjoy about react?
The questions
I have been to a few coding interviews while looking for a react job and interviewers always ask the same two questions. They all want me to explain what i like about the react framework and what technology i would like to learn. I feel like explaining my answer here.
What do you enjoy about react?
This is a question which is given at every react job interview. I have a different way of looking at it. React is simply a tool which allows me to build what i want. The interviewer often wants you to be exited about react and talk about how cool it is. To me it's like being exited about a hammer. Yeah you can build some cool stuff with it, but it's about who uses it.
Would you ask a builder why they would use a hammer instead of a mallet with nails? They both share the same characteristics. Isn't the most important thing that the nails get hammered somehow. I look at react the same way. The reason i started to use react was because i needed to use some kind of framework for a project and it was the first one i tried. I don't feel any kind of emotion towards it, it's simply a tool.
What technology would you like to learn?
I feel like this question should be asked differently. The reason why you should be learning new skills is because your old abilities don't let you build what you want. I don't believe in learning for the sake of learning. I wish the interviewers would ask more questions regarding project ideas and what types of projects have you built. I always write down any ideas and carry a notebook full of them. Most of these ideas will probably never get made but maybe one day one of them develops into a million dollar idea.
The intention behind those questions
I know that the purpose of these questions is to see how familiar the applicant is with react and how he exited he is about programming in general. I wish more interviewers would ask questions about previous projects rather than what tools were used to build them. One thing which i have learned that creating projects isn't just about coding. For example marketing is a massive problem for me, i really hope that writing this blog will draw some interest to my projects as well.
I have been to a few coding interviews while looking for a react job and interviewers always ask the same two questions. They all want me to explain what i like about the react framework and what technology i would like to learn. I feel like explaining my answer here.
What do you enjoy about react?
This is a question which is given at every react job interview. I have a different way of looking at it. React is simply a tool which allows me to build what i want. The interviewer often wants you to be exited about react and talk about how cool it is. To me it's like being exited about a hammer. Yeah you can build some cool stuff with it, but it's about who uses it.
Would you ask a builder why they would use a hammer instead of a mallet with nails? They both share the same characteristics. Isn't the most important thing that the nails get hammered somehow. I look at react the same way. The reason i started to use react was because i needed to use some kind of framework for a project and it was the first one i tried. I don't feel any kind of emotion towards it, it's simply a tool.
What technology would you like to learn?
I feel like this question should be asked differently. The reason why you should be learning new skills is because your old abilities don't let you build what you want. I don't believe in learning for the sake of learning. I wish the interviewers would ask more questions regarding project ideas and what types of projects have you built. I always write down any ideas and carry a notebook full of them. Most of these ideas will probably never get made but maybe one day one of them develops into a million dollar idea.
The intention behind those questions
I know that the purpose of these questions is to see how familiar the applicant is with react and how he exited he is about programming in general. I wish more interviewers would ask questions about previous projects rather than what tools were used to build them. One thing which i have learned that creating projects isn't just about coding. For example marketing is a massive problem for me, i really hope that writing this blog will draw some interest to my projects as well.
tiistai 11. helmikuuta 2020
Useless coding projects and how to avoid them
A lot of developers got it wrong
Before i discovered google blogger i was actually trying to add a blogging feature to my own website. This was a foolish endevor. Every project you build should add something new to the world. There already exists tons of different blogging applications, calculators, todo apps, etc. Building an app which already exists is a waste of resources. Whenever you have an idea for a project your first objective should be to seek if it already exists. I decided to explore how to create good projects and find out why there are millions of useless coding projects.
Value mentality
When starting a new project your main objective should be to create something which holds value. Find a need that people have and fulfill it. Put yourself into the shoes of someone who would use the service that you will provide. Don't build another calculator application unless you really think that you can add a spectacular and never before seen feature for it.
Assess your current skill set
It's important to understand your current abilities. Build something which you are already familiar with and add a couple of new things. Be reasonable with your time and skills. The only reason you should ever be learning a new skill is because you want to build something with it. I don't subscribe to the theory of learning for the sake of learning
All in all
Do some soul searching in order to understand your own abilities. You should always be building something out of your strengths rather than weaknesses. Create something which holds value and for the love of god, don't build another calculator application, we have enough of them.
Before i discovered google blogger i was actually trying to add a blogging feature to my own website. This was a foolish endevor. Every project you build should add something new to the world. There already exists tons of different blogging applications, calculators, todo apps, etc. Building an app which already exists is a waste of resources. Whenever you have an idea for a project your first objective should be to seek if it already exists. I decided to explore how to create good projects and find out why there are millions of useless coding projects.
Value mentality
When starting a new project your main objective should be to create something which holds value. Find a need that people have and fulfill it. Put yourself into the shoes of someone who would use the service that you will provide. Don't build another calculator application unless you really think that you can add a spectacular and never before seen feature for it.
Assess your current skill set
It's important to understand your current abilities. Build something which you are already familiar with and add a couple of new things. Be reasonable with your time and skills. The only reason you should ever be learning a new skill is because you want to build something with it. I don't subscribe to the theory of learning for the sake of learning
All in all
Do some soul searching in order to understand your own abilities. You should always be building something out of your strengths rather than weaknesses. Create something which holds value and for the love of god, don't build another calculator application, we have enough of them.
keskiviikko 5. helmikuuta 2020
Why this blog might become obselete
Blogs might disappear in the future
With the rise of video technology i believe traditional text media might disappear from the internet. Over the last decade we have seen massive improvements in video playback technology. Now days you can even watch high quality videos on your phone. I believe that every piece of text which can be transformed into video format will be transformed.
Big players play videos
Youtube and Twich are some of the most popular websites and they are based on video sharing. Even Instagram and Facebook are starting to see more video content. TikTok appeared out of nowhere became one of the most popular applications almost overnight. All of the above are either directly or indirectly focused on video content.
Companies begin video marketing
If you are a company it's almost necessary to have your own YouTube channel. Traditionally companies wrote blogs in order to promote their business. This marketing strategy is currently being replaced by video content. In the future text blogs might disappear completely and be replaced by video channels.
Video productions skills will be needed
In the upcoming years we will see a massive need of everything related to video production. Not everyone wants to be a be in front of the camera. But video production is a big process and needs people to shoot and edit videos too. Skills related to video production will be in high demand in the following years.
Conclusion
I recommend everyone to learn the basics of video production. Find out about the most popular video channels and see what kind of content they produce. Familiarize yourself to video production because video content is the future.
Steamer and audience interaction apps
The issue
As streaming is becoming more and more popular i have noticed one type of an app which isn't being build : applications which allow streamers to interact with their audience. The best way to build these would be to create websites and web applications which work on browsers. Although creating android or desktop applications might not be a bad idea either.
What type of applications do i mean?
Twitch is already creating games and video sharing methods which allow audience and streamer interactions. The great thing is that they don't hold a monopoly over it and anyone can build one of these apps. One example i can give is Straw poll. Streamers use it in order to create polls and get quick poll results regarding any question they may have to their audience. I believe there could be more of these kinds of applications.
How do you monetize them?
The most basic method of monetization is through advertisements. Thought this can only be profitable if there are enough users. Another way is to create premium features. A lot of mobile games implement this tactic. They create a game which can be downloaded for free but if you want access to all of the features you need to pay up. This strategy could work for websites too.
As streaming is becoming more and more popular i have noticed one type of an app which isn't being build : applications which allow streamers to interact with their audience. The best way to build these would be to create websites and web applications which work on browsers. Although creating android or desktop applications might not be a bad idea either.
What type of applications do i mean?
Twitch is already creating games and video sharing methods which allow audience and streamer interactions. The great thing is that they don't hold a monopoly over it and anyone can build one of these apps. One example i can give is Straw poll. Streamers use it in order to create polls and get quick poll results regarding any question they may have to their audience. I believe there could be more of these kinds of applications.
How do you monetize them?
The most basic method of monetization is through advertisements. Thought this can only be profitable if there are enough users. Another way is to create premium features. A lot of mobile games implement this tactic. They create a game which can be downloaded for free but if you want access to all of the features you need to pay up. This strategy could work for websites too.
My own example
I recently created linkittv which is an example about what i am talking about. It allows streamers to watch videos suggested by their audience. If it proves to be popular among streamers, i plan on creating premium features. These premium features would be locked behind a paywall.
I recently created linkittv which is an example about what i am talking about. It allows streamers to watch videos suggested by their audience. If it proves to be popular among streamers, i plan on creating premium features. These premium features would be locked behind a paywall.
tiistai 4. helmikuuta 2020
Programmers and designs
Software design and war
I think designers and programmers are at war, designers want to implement all kinds of fancy features to the project but they might not know how hard or easy they are to implement. I came up with a little analogy to better explain my opinion on this.
Software design... Software design never changes
War strategies are an important part of fighting. Successful assaults are often well planned and executed. But the plans can only get you so far, there are some things that weren't or couldn't be accounted while developing a strategy. That's why it's often best to improvise. And the improvisation is best done by the soldiers who are executing the mission.
The same mindset should be adopted by software developer teams. No matter how much the designing you do, the true nature of the projects is revealed once it's being built. Programmers should always voice their opinions if they think that implementing another design might be easier and faster.
Designs should be a living and changing plan, and those changes are best made by the programmers who are developing the project.
I think designers and programmers are at war, designers want to implement all kinds of fancy features to the project but they might not know how hard or easy they are to implement. I came up with a little analogy to better explain my opinion on this.
Software design... Software design never changes
War strategies are an important part of fighting. Successful assaults are often well planned and executed. But the plans can only get you so far, there are some things that weren't or couldn't be accounted while developing a strategy. That's why it's often best to improvise. And the improvisation is best done by the soldiers who are executing the mission.
The same mindset should be adopted by software developer teams. No matter how much the designing you do, the true nature of the projects is revealed once it's being built. Programmers should always voice their opinions if they think that implementing another design might be easier and faster.
Designs should be a living and changing plan, and those changes are best made by the programmers who are developing the project.
maanantai 3. helmikuuta 2020
Landing and working a tech job
My job hunting philosophy
I recently had a eureka moment while searching for a tech job. I have been thinking about job hunting the wrong way. Let me share how my thinking has shifted.
You should bring value to the company
Many people like to overcomplicate the job hunting process. The only thing you should be thinking is can i bring value to the company. See what kind of projects they have done and ask yourself : could i have helped building these projects. If the answer is yes then you should apply for a job. It's all about bringing value to the company, they pay you set amount of salary but you will generate more money to the company than they pay you.
It's about what you can make
While searching for jobs it's always important to be as clear as possible about your abilities. Let's say a company is looking to recreate their website UI by using react. If you don't know what that sentence means then don't apply for the job. However if you have experience in building an UI with Angular, then definitely apply. It's all about what you can create, not about the tools you use.
Be a partner not an employee
The most important thing is to stop thinking yourself as an employee, and start thinking yourself as an company partner. If you think yourself as an employee, it will cause you to only play the part of an employee, someone who simply execute commands given by your superiors. But by thinking yourself as an partner will cause you to think more critically about your every task. Partners will always think : "how can i generate more value for the company" which should always be the point of your job.
Always be compensated
Let's say you are a developer but you have an idea to start a blog for the company. The marketing people really like that idea but tell you to not work on it during work hours and aren't willing to compensate anything for writing it. DON'T DO IT
You should always be compensated for the value you bring to the table. If the company hires you to work for 8 hours, then you should spend eight hours a day creating and thinking about how to create value for the company.
Company and partner relationship
Company and your relation ship works best while you are both contributing equal amount to the relationship. I took some pointers from Professor Scott Steiner and came up with my own math formula : 50% + 50% = 100%
Superhero team analogy
While working for a company you should view yourself as Ironman
working for the Avengers. If you leave your position or get let go do you cease being a superhero? of course not, your abilities and skills still exist and you can go work in another superhero team.
Just don't join justice league unless you enjoy being part of bad superhero movies!
The point i am trying to make is that getting fired or leaving a job shouldn't be that big of a deal, you should be always learning skills which are in high demand.
I recently had a eureka moment while searching for a tech job. I have been thinking about job hunting the wrong way. Let me share how my thinking has shifted.
You should bring value to the company
Many people like to overcomplicate the job hunting process. The only thing you should be thinking is can i bring value to the company. See what kind of projects they have done and ask yourself : could i have helped building these projects. If the answer is yes then you should apply for a job. It's all about bringing value to the company, they pay you set amount of salary but you will generate more money to the company than they pay you.
It's about what you can make
While searching for jobs it's always important to be as clear as possible about your abilities. Let's say a company is looking to recreate their website UI by using react. If you don't know what that sentence means then don't apply for the job. However if you have experience in building an UI with Angular, then definitely apply. It's all about what you can create, not about the tools you use.
The most important thing is to stop thinking yourself as an employee, and start thinking yourself as an company partner. If you think yourself as an employee, it will cause you to only play the part of an employee, someone who simply execute commands given by your superiors. But by thinking yourself as an partner will cause you to think more critically about your every task. Partners will always think : "how can i generate more value for the company" which should always be the point of your job.
Always be compensated
Let's say you are a developer but you have an idea to start a blog for the company. The marketing people really like that idea but tell you to not work on it during work hours and aren't willing to compensate anything for writing it. DON'T DO IT
You should always be compensated for the value you bring to the table. If the company hires you to work for 8 hours, then you should spend eight hours a day creating and thinking about how to create value for the company.
Company and partner relationship
Company and your relation ship works best while you are both contributing equal amount to the relationship. I took some pointers from Professor Scott Steiner and came up with my own math formula : 50% + 50% = 100%
Superhero team analogy
While working for a company you should view yourself as Ironman
working for the Avengers. If you leave your position or get let go do you cease being a superhero? of course not, your abilities and skills still exist and you can go work in another superhero team.
Just don't join justice league unless you enjoy being part of bad superhero movies!
The point i am trying to make is that getting fired or leaving a job shouldn't be that big of a deal, you should be always learning skills which are in high demand.
Tilaa:
Blogitekstit (Atom)