Web developer skills, tools, frameworks, do I really need to know all this stuff?

Please note there is a questionaire at the bottom of this article which you can answer if you want to.

When I first started in web development I started by learning PHP along with HTML, CSS and Javascript to create the UI of web software system I was building.

After a couple of years I decided to start using a web framework to make my development of web based software less time consuming.

It was around this time period that I was of the opinion that I needed to study whatever skills I was learning to point of mastery.

Of course although most skills where learned in depth learning any skill to point of mastery is ongoing.

Below is a diagram showing my opinion on learning new skills …

It is my belief that the bulk of the learning is done at the very beginning with only minor gains being made after that.

The minor gains would be the ins and out of the skill and the areas of the skill that will not be used on a day to day basis.

Some of the minor areas would include areas of the framework that do not work as expected and you have to spend a little time figuring out how to do it using the framework itself.

Most of the areas of the skill that are going to be used daily are within the “front peak” area of the diagram.

The diagram is ongoing and the right area of the chart is always expanding, this represents the ongoing updates to the skills you would need to learn to say you are “up to date” with the skills.

Although this area would most likely not include the “front peak” again it is still ongoing never-the-less.

So going back to what I was saying I use to believe that I had to take my learning all the way to the end of the chart and going further that I had to have some commercial viable projects that I have built using the said skill.

Only after doing the above could I say that I had the “skill”.

Looking on the job boards today I can see that lots of employers are asking for enormous amounts of different skills.

Why would a company need all of the these skills they are listing from both 1 employee and every employee within the company?

I am not going to harken back to the “good old days” but I am reasonably sure that these skills use to be more spreadout over different employees.

The skills being listed are skills needed in multiple roles meaning each and every employee is wearing many hats rather than 1 employee being this and 1 employee being that.

Some of the skills are totally unrelatable such as needing to know 4 programming languages (core skills) and various frameworks and tools related to each of those 4 languages. Or listing graphic design skills along with UI programming skills.

If you go to University you go there to learn “web development” or “graphic design”. So are these companies telling me I need a degree in “web development” and “graphic design”? How long would you need to learn at University to do that? Around 6 years, 3 years for each course and that is the tip of the iceberg.

This gives the impression that these companies cannot possibly be serious but in some cases you actually find that they are serious.

How can anyone learn this number of skills to the point of mastery or even in depth?

Not all of the skills listed on these job descriptions take an equal amount of time to learn. Some of the skills could take as little as a couple of hours whilst some can take as long as year.

To some of the companies there is no differentiation between these, either you have the skill or you have not got the skill.

I have seen job descriptions listing “plugins” as needed or desired skills. Plugins should not even be listed as skills, plugins are just modules that can be used by the core language or framework.

Most programmers do not even look at plugins as requiring any learning they just import the plugin and get stuck in. The degree of learning for a plugin is so minimal that it is hardly worth mentioning let alone listing as a required or desired skill.

Admittedly because some employers are asking for plugins as a skill I have started listing plugins I have used in my skill set. Last year I was not doing this though.

Here is my experience on how long certain skills should take to learn from scratch, when I say “learn” I mean to get over the big spike on the chart above, of course you can continue learning additional parts after the big spike and the learning can be on going but I am just talking about learning something enough to be useful enough to produce something …

Core skills – Java, PHP, C#, Javascript, SQL etc – 6 months
Frameworks – Laravel, Yii / Yii 2, Symphony – 1 month
Mini frameworks – Express, Lumen, NodeJS, React – 2 weeks
Plugins – anywhere from a couple of hours to a couple of days

As you can see it is only the “Core skills” that in my opinion take a long time to learn, after the “Core skills” the time to learn the other areas such as “Frameworks”, “Mini frameworks”, “Plugins” decreases dramatically.

Potential employees are being rejected on the grounds of them not having the certain skills listed above.

The potential said employee is going to be with the company for years and is being rejected on the grounds of not having a skill that would take 2 weeks to 1 month to come up to speed on?

It is not that the employee even has to take 2 weeks to 1 month to learn the skills on company time, the employee can still be productive whilst learning the skills. An employee can start on the company work and learn the skill as he / she goes along.

No big deal in my opinion.

Sometimes a company will claim they rejected you because they did not think you could “hit the ground running”.

If challenged on why the said companies thinks you will not be able to “hit the ground running” you will get a list of supposed “technical incompetencies”.

This list was most likely not produced at the time but the hiring manager went by his or her “gut feel”. Now that you have challenged it the hiring manager will produce a list of your “technical incompetencies”.

This can seem very daunting but what most people do not realise is that coming up with a list of someone elses “technical incompetencies” is the easiest thing in the world to do.

Everyone has some incompetencies that can be focused on, the problem is you do not get to see the hiring managers or any of the other employees incompetencies within the said company, so it gives the impression that only yourself is incompetent.

What you will also find is that the “technical incompetencies” are of a trivial nature.

An example could be “Type Hinting”, a number of years ago it was not possible to use “Type Hinting” in PHP so in your “technical test” you may write a method as follows …

Rather than using “Type Hinting” like this …

Some of my personal PHP projects I work on do not use “Type Hinting”, a lot of PHP web software projects have no “Type Hinting” in them.

However this is exactly the sort of area the hiring manager would bring up as a “technical incompetence”.

In my projects where I have used “Type Hinting” it was no big deal to start using it. It did not take me any extra time to start using it and it was not difficult to start using it.

It was not a “technical incompetence” it was something I just did not do out of choice and personal preference.

Like I say to start using it was no big deal and certainly not something that warrants rejecting a potential job applicant on.

Job application test …

Coded a small web app without using Type Hinting – “We do not think you can hit the ground running”

Applicant …

Hears the answer and is disappointed he did not get the job. Decides to implement Type Hinting into the small web app he just made for the interview just to see how long it would take, took him 15 minutes to implement.

15 minutes to implement! This could have been done on his morning break, all it would have required is for someone to tell him to start using Type Hinting. Hardly a deal breaker given that the said applicant would have been at the company at number of years.

Next job potential job.

Employer business …

“Yes we need HTML, CSS, PHP, Laravel, NodeJS, Express”

Applicant …

“Fantastic I have all these skills.”

Employer business …

“Ohh actually we also need React” – “We do not think you can hit the ground running”

Applicant …

Decides to learn React on his own time to see how long it would take. Gets over the learning curve in 2 weeks. Again hardly a deal breaker given that the applicant would have been at the company a number of years.

Of course there will be people out there thinking “Well if you are that bothered, why do you not just learn React and then apply for the said jobs”.

This would be OK provided there was not different combinations of skills that need to be learned, one company wants one thing one company wants another thing.

One company wants Symphony one company wants Laravel, one company wants AngularJS one company wants React.

These types of skills are parallel to each other, if you learn one it is not worth learning the other because they are both designed to accomplish the same goal.

This means you basically have to learn parallel skills just to get a job in a specific type of company.

So lets start putting it to the businesses …

I am an applicant and I have the following skills …

HTML, CSS, JQuery, PHP, MySQL, Laravel.

Everything I need to build a perfect fully function web based software system.

Company does not want these skills but they want something similar to this …

HTML, CSS, MongoDB, NodeJS, Express, AngularJS, PHP

Basically this is about the stack of technologies, give or take, the first set of skills is the traditional LAMP stack of skills the latter is the MEAN stack of skills.

Applicant …

“So employer business what made you decide to use the MEAN stack of technologies over the more traditional LAMP stack of technologies?”

Employer business …

“We decided to use the MEAN stack of technologies because with the emergence of NodeJS we can now compile Javascript and this makes the software system more faster and efficient over the traditional LAMP stack of technologies”

The above is a typical text book answer, the above sentence could have been taken straight from the NodeJS website itself. The real reason is because the MEAN stack is the latest web development fad.

Lets carry on …

Applicant …

“So what types of web based software systems do you build?”

Employer business …

“We build a range of web software systems for our clients such as custom CRMs, Online Stores, Project management tools, Workflow tools”

In other words nothing that would be required to be “ultra” fast and efficient. Nothing that is really scientific and cutting edge. Nothing that would require the latest advancements in processing power. Nothing that could not be built using the traditional LAMP stack and be almost as fast and efficient.

When the term fast and efficient is being used remember it has a context, the gain made will most likely be in the form of milli-seconds.

This may be useful in some areas but for your general business tools such as what businesses need and what most web based software system companies are providing the extra 0.001 milli-second gain per page load is generally not going to matter.

But lets say that all these areas matter, the extra 0.001 milli-second gain per page load matter, lets carry on …

Applicant …

“So you mentioned you aim for speed and efficiency in the web based software systems you use. Why then did you not use Java over NodeJS as Java has been around longer, is tried / tested and is more faster and efficient than NodeJS?”

Most likely you will not get a real answer.

The point is there are tools and languages for the scientific world, there are tools and languages for the speed and efficiency world.

These tools and languages have been around for years and are better at their “niches” than NodeJS. So why was NodeJS chosen if “speed and efficiency” was the goal?

The companies that are really scientific and cutting edge do not expect their “scientists” to “hit the ground running”. It is recognised that the said subject will require research and development.

Breaking into something that is truely scientific and cutting edge is not something a “timescale” can be given to. If nobody has done it before how can anyone know the “timescale”?

Having said all of this I have started to learn new skills such as NodeJS and the rest. I am finding it super enjoyable and it is giving me the same feeling of enjoyment I had when I first started programming.

It is just a bit of a bother that employers are not willing to take a chance on a potential employee and train them up as they go along especially when the employee will be with the company for a large period of time.

So what to do if your a developer who is stuck in this situation?

Well I will put that question to you and we can have a look at the results in a later blog article.

Blogging an indication of company effort

Blogging can be a time consuming process that not many people will appreciate until they have attempted to run a blog themselves.

The internet is scattered with blogs that have not been updated since 5 years ago or blogs with only 4 articles in them that have been online for over a year.

These sorts of blogs are not an indication that the writer of the blog only puts out brilliant content and he is waiting sometime before he puts out his next brilliant blog article.

Basically giving the impression he would rather put out quality content than put out rubbish content and that is why his blog has so little content over the years.

No these sorts of blogs are an indication of a blog that was started and then given up on because the person or business that was maintaining the blog could not be bothered to continue maintaining the blog.

In my opinion a blog with only 4 articles in it written over a 2 year period is worse than no blog at all. It is much better to visit the website without a blog then to visit a website with a blog with so few articles in it over a rather large time period.

Blogging is a persistent activity that requires commitment, whether that commitment is 1 blog article a week or 1 article a month does not matter. It is the persistence that is nessacary.

Before starting a blog you need to ask yourself is this something I can dedicate a number of hours per week or month to. A lot of people believe they can to begin with but as can be seen from a lot of blogs on the internet this is not the case.

Their blog quickly becomes something that gets put on the back burner never to be touched by themselves again.

So how is a blog an indication of company effort?

Well let us start by mentioning that a blog has a value in its own right, it is an indication that a person or company is willing to invest a level of effort each week or month over a large period of time. Thinking up content and writing the content every single week takes time.

Much more effort and time than most people are willing to give it credit for.

Some people or companies will say “Yea we tried blogging once but it did not return the level of effort we put into it so we stopped doing it”.

Most likely this company only wrote less than 10 blog posts and then gave up. Basically it is just an excuse because they did not have the persistance to keep blogging.

Now a person or company might say something to the effect of …

“We invest our time and energy into other areas of our business rather than our personal / company blog”

Ok standard customer work does not count and if that is the case then let me see some evidence of that and show me how it is a persistant effort because I normally find that people / companies stating this use it as an excuse.

The reality is normally the person / company invests no effort in a blog or in any other area of their business. It is not that they are doing something great other than a blog but more like they are just doing nothing at all.

Rubbish vs not rubbish blog content …

People have different opinions about what constituents rubbish content or not rubbish content. Many people out there probably think I post rubbish content.

I mean I am just 1 guy at the end of the day I am not the CEO of a huge company so how can I talk about these topics? Whatever I write is bound to be wrong and rubbish right?

Well in my opinion, no not exactly. I will explain my opinion on what is rubbish content vs not rubbish content …

Rubbish or playing it safe content …

Generic blog articles or tutorials that have already been discussed a thousand times on the internet and the article written in question is pretty much just a duplicate of what is already out there.

This I call playing it safe content. It could be a “HTML tutorial” or “SEO best practices” with no opinions or discussion added other than what is generally considered “generic”.

Not rubbish content …

Blog articles or tutorials that have the persons opinions and personal experience added to them.

This could also be a “HTML tutorial” or “SEO best practices” article but the difference is the person has included personal opinions and experience.

Alternatively it could be a post related to what is happening in your business personally.

For example the “SEO best practices” article …

“To implement SEO best practices do this and do that etc. Mark Zuckerberg achieved a 5% growth in his online traffic due to implementing these practices.”

Nothing further said. Now a none rubbish “SEO best practices” article would go as follows …

“To implement SEO best practices do this and do that etc. However I will warn you to do A like this because I tried doing A the generic way and it did not return good results so by doing A like this it doubled the traffic I gained from that point. I achieved overall a 10% growth over this period of time by implementing these practices. Here are some charts and statistics showing what I did and the results I got personally”

This in my opinion is much better. I want to hear about the methods you used personally in your business, the results you got personally in your business and your personal opinions.

It does not have to be anything shocking or controversial, just some personal information that seperates you from the next blog article.

Who cares if the “big boys” got a 5% growth rate by implementing some practices, most businesses out there will not be on the level of Mark Zuckerburg etc.

Do not be afraid to post about any not so good results you got as well. If you implemented a so called “SEO best practise” method in your business and got no growth despite the implementation then say so.

Maybe you put in “title tags” and nothing happend in terms of your website traffic. Then tell people, tell them what practise you implemented and show the people the non existent results you got from it.

This is useful because it tells people what not to do, maybe the “SEO best practise” advice was a load of rubbish or the people writing the “SEO best practise” article leave out important parts or do not really tell you how to implement the advice properly.

Either way you can say you tried the advice, what you did and the “realistic” / “personal” results you got from it. I could probably right now implement some of this so called “best practise” advice on my own website and achieve nothing from it.

I think a lot of this so called advice out there is non-sense or only works in certain situations.

So that is what I count as non rubbish content …

Personal, realistic content based on personal experience, possibly with statistics to show the evidence. Content with personal opinions. Content based around your business personally.

Rubbish content …

Generic content repeated thousands of times on the internet, duplicate articles, articles out of context for example showing the results what the “big boy” businesses got when most businesses out there are not the “big boys”, results not personal but what some other company got by doing it, experience not personal just copying someone elses experience.

Let me say that if you are a freelancer or business that has a blog with content being published on a reasonable schedule then hats off to you and keep up the effort.

Freelancing buy / sell websites my thoughts

The other day I was thinking about freelancing sites in general. These are websites that allow people to post projects and freelancers to bid on the projects.

The usual thoughts came into my head like these are rubbish, full of cheap projects and people providing services on the cheap etc.

I have often thought why do these sites allow such cheap projects and cheap providers of services to be placed on them.

This has always been my line of thought, if I built a website like this how could I attract the people with proper budgets and decent enough freelancers to complete the project.

I would not want the website filling with such low-tier projects / service providers and I would create filters to prevent this from happening.

Yes any decent person would think like this so it can be quite jarring to the senses to see what is happening on these sorts of freelancing websites.

A lot of people think this, it is only natural. A lot of people may think “Yes it was good at one time but now it is just full of junk projects”. A lot of people see it as a fundamental problem.

So I was thinking why do the owners of these types of websites not recognise this and then it occured to me that I never considered the owners of such sites perspective.

Then I realized something beyound the obvious which is that these sites are here to make money and they do not care if their website is full of junk projects so long as it brings in the money.

What I realized is that these websites have been deliberatly created this way. These websites have not from “good to junk” overtime, but the whole purpose of these websites was to provide cheap services to people wanting cheap services.

You see what is the number one item that clients want in the “web software” industry.

Clients want “web based software to the best quality it can be, produced as cheaply as possible”.

Well these types of websites claim to provide exactly this. Post what would have been a £20,000 project here in the UK by a UK provider and you can get the project done on one of these websites for £3,000.

In my opinion what these websites are actually doing is a bait and switch, a typical scenario will go like this …

The bait

Post your project here and get quality software done at a fraction of the price it would have cost you going to your local provider.

Person posts his / her project and gets quote of £3,000 to £5,000 for what would have been a £20,000 project by the local provider.

Person selects one of the low-end quotes costing him £3,500 for the project.

The switch

Project comes back from provider, parts not done properly and in some cases not done at all, under the hood the code looks messy, ultimately the whole project looks below the quality the local provider was offering.

So what happens now? Well any person who you complain to including the website companies themselves will most likely give you an answer similar to this …

Person: “How much did you pay for this?”.

You: “£3,500”.

Person: “Well no wonder you did not get a quality product, you where not expecting all this functionality you described for £3,500 where you? I mean you only get what you pay for right? I think for the £3,500 you got a reasonable enough product if you wanted a quality product you should have paid more!”.

These website companies have sold you the “dream” and now the website companies have your money you are “sold” the reality.

Now the website companies change their tune, the website companies change their tune to the same tune as what anyone with any common sense would have told you before you spent the money.

Now you feel guilty because you feel you should have listened to the people with common sense. The website companies themselves have conveniently changed their tune to the same tune as people with common sense to add to your guilt.

This model conveniently ignores the “dream” you where sold in the first place and focuses on the low quality result and the low budget.

Of course you could now challenge the “dream” you where sold in the first place but most likely all the details of the project where not specified up front or the requirements where of a “fluid” nature which makes it difficult to challenge.

With the added plus you feel guilty because you expected a quality product for your low budget when people where telling you it would be impossible to get a quality product for the low budget specified.

This all adds up to you feeling you must accept the shoddy product because it was your own fault and not the fault of the website companies for selling you a “dream”.

Freelance Sites Dream

“Now no one cares you where sold a low quality product, no sympathy for you, no pity for you.” – this is exactly the sort of statement these websites want you to except.

The statement negates the fact that they “sold” you a different product to the one delivered.

Dream = I can get quality software for 20% of the cost what other people normally charge.
Reality = The finished software product is low quality as it would be for the price you paid for it.
Anyone listening to complaint = no sympathy or pity for you, that is what happens when you try to cheat the system.

Like I say it is not in these website companies interests to filter out the low quality projects / low quality providers, that is why these websites are the way they are.

It is not a case of these websites owners fixing anything, these websites are exactly the way the owners want them to be.

My Google home minis

So I have recently brought 3 of the new Google home mini’s for my home. 1 is in the kithen, 1 is in the living room and 1 is in my bedroom.

I bought the Google home mini’s because I have no other “home talk” system as of yet and these where priced cheap in a 3 for the price of 2 deal. The deal cost around £100 for the 3 Google home mini’s.

I will say now that I am more of a Apple guy and I did look around the internet to see whether Apple had released a “home talk” system as of yet.

It turns out they have one in the pipeline but it has not been released yet also Apple’s version of the “home talk” system is quite expensive, I think I read figures of around £350 for 1 device.

So with that said I went out and bought the 3 Google home mini’s if I want to buy Apple’s version that option is still open to me but these Google home mini’s will do for now.

Google is up there for me though, I use Google for a lot of different areas including Gmail, Apps and Calendar. It is just I use Apple as my laptop and mobile phone.

So what do I think of the Google home mini?

On a personal level it does exactly what I want it to do and for the price I cannot fault it. The Google home mini does not contain a portable battery as standard but that does not bother me, I just have mine plugged in all the time and it is not my intent to use it as a portable device.

Good points

It is wonderful to be able to say to the Google home mini just before I go to sleep at night “Wake me up at 8:30” and it will set an alarm for 8:30.

The Google home mini can also set various types of alarms such as “Wake me up at 8:30 everyday” etc and it will then set that alarm daily.

I prefer just to tell the Google home mini what time I want waking up each night, then I can set my wake up different each day depending on the time I am going to bed at night.

When I wake up in the morning I can ask Google home mini “What is my day like?” and the Google home mini will give a report of the whether, my agenda and various other areas. The agenda is based on the entries you have in your Google calendar.

Getting the whether and temperature outside is also useful.

I ask Google mini to play some chillout sounds such as the sound of a fireplace or forest. Google mini can hook into music provider services such as Spotify but for those services you need an account on one of those services.

I use the Spotify free account but rarely because the Spotify free accounts sound quality is already reduced and with it running through a mini speaker it is not the best quality of sound available.

You can ask Google home mini to find certain shops in the area for example “nearest pharmacies” and the Google home mini will tell you the nearest pharmacies.

You can then get more specific and ask the Google home mini about the nearest pharmacies opening times or telephone number etc. This is very useful.

I also love being able to set timers on my Google mini, you can set a timer for a particular length of time or you can set a timer for a specific time. I know a timer is not the height of technological advancement but for me it comes in handy when I need it.

Google mini can also act as a clock, you can ask it the time and it will give it you. You can ask it to flip a coin or roll dice and it will tell you the result as well. Just other simple things I find useful.

Google home mini can do lots lots lots more besides this, however these are some of personal favourites.

Bad points

Sound quality, for playing high quality music Google home mini is not the best speaker system out there but then again I did not expect it to be for the price I was paying for it.

I listened to some Spotify music and the sound was not the best quality however I was using a free Spotify account and Spotify reduce the audio quality on the free account.

So I also tried it with bluebooth and played some music from my laptop to the device, again the sound was not the best quality.

Not a problem for me because I would not expect the best quality sound from a £50 (standard price, I paid £33) “home talk” system mini speaker.

Many of the areas of the Google home mini talk system are not quite there yet in terms of the depth of what you can ask it. The Google home mini does not understand every question I ask it and this includes general questions about when I ask it to find something on the internet.

The Google home mini does not accurately report pricing information for example asking “what is the price of the Monopoly board game” will not yield valuable information.

Asking the Google home mini “find the nearest place that stocks the Monopoly board game” and “does that place have any in stock” is out of the question as of yet.

This is to be expected though really as there are different suppliers of the Monopoly board game however I would have thought it may have returned a generic price, or a list of prices from Google shopping or similar.

There are simpler questions than the above you can ask Google home mini and it will still not yield valuable results etc. So all in all not quite there yet in terms of what you ask the Google home mini.

You can ask Google home mini a lot but most of the areas you can ask it are very simple areas.

Another area is the interactivity between different Google home minis. I have not seen anything yet in terms of interactivity between the devices.

I cannot say “Set a kitchen alarm for 9:00” or “buzz kitchen alarm” or “send message to kitchen device” from my bedroom device etc. So again nothing in this area and limited overall as of yet.

These are some of the bad points I have noticed.

Personal business talk system

As a developer it did not take me long to figure out I could create something useful for my business using the Google home mini API.

I got working in learning how to use the API and developed my own personal business talk system.

I can now ask my Google home mini “How is my business doing?” and the Google home mini will provide a report on various statistics related to my business.

The statistics are pulled from my personal project management system.

I did this as a kind of “vanity” project. I can just login using a web browser to check those statistics so having them read out to me by my Google home mini was not really nessacary.

However it is great to be able to wake up in the morning in bed and say “How is my business doing?” and getting a response with real time data statistics read back to me.

For those people wanting to know, this type of system can prove quite costly in terms of value provided.

All the systems you want to get data from will need an API creating if they have not already got one to pull the data out of.

Then a central script will need to be created to pull the data using the APIs and feed the data to the Google home mini API.

Then the Google home mini API settings need configuring to work.

The project can turn out to be more lengthy than what it initially seems.

Conclusion

The Google home mini’s are useful in a variety of situations but are not quite there yet in terms of the complexity.

However most of the “home” systems available from other providers are not there yet in terms of the complexity anyway.

Removal of high quality

For those of you who have followed my website for sometime you may have noticed I have removed something from my website.

Can you guess what it is? Yes it is the word “high quality”.

My websites description use to read …

“Freelance Web Software Developer from Derbyshire, UK. I write high quality code to create and deliver web based software projects.”

And it now reads this …

“Freelance Web Software Developer from Derbyshire, UK. I write code to create and deliver web based software projects.”

I do not know why I said I produce “high quality” code in the first place, what did I hope to gain from this?

James Barnsley A produces code to power websites.

James Barnsley B produces high quality code to power websites.

Is a potential customer going to read my website and think …

Oh well, I had better go with James Barnsley B then instead of James Barnsley A. It is highly unlikely is it not?

I wrote about this in a previous article which has now been deleted but I will describe what happend again for the benefit of the people who never read the article.

A while ago I rang up a company who I was looking to work with and I explained to one of the people at the company about myself, the customers I have worked with and that I do programming.

I also mentioned that I do programming as a hobby and immediately in a raised voice the person blurted out …

“We do programming as a profession here, we do not do it as some hobby, we are doing this for a living!”

Yes I get that, hence the reason I talked about myself and the customers I had already worked with, some of which are multi-million pound organizations.

Anyways for some reason the person ignored all that and obviously just thought I was a “hobby” programmer.

I actually did programming as a “profession” and then in my spare time did it as a “hobby” also by working on my own personal projects.

There are a lot of these turning a hobby into a job articles online that all follow a similar theme, here is one of those …

The theme generally takes the story of a person who is doing something for a hobby like programming and then after a number of years of doing it as a hobby the person had a moment of “enlightenment” and all of sudden he is no longer doing it as a hobby anymore but as a job.

The person makes all the analogies about he “tightened up his processes”, “defined what he really wanted to do” and how his “programming improved to such an extent that he is no longer doing it as a hobby but as a job”.

The person has left all his / her “hobby” programmers behind because their just not there yet and have not reached the level of “enlightenment” that he / she has. Yes, a person should always wear his “hobby” programmer badge with pride until he has reached the “next level”.

Let me turn my hobby into a job …

“I am James Barnsley and I do web programming as a hobby job”

After thinking about this I can see how that related to myself.

I started out as James Barnsley who writes code to power web software systems. Now James Barnsley has had a number of years experience at doing this James Barnsley is no longer just James Barnsley but is James Barnsley who writes “high quality” code to power web software systems because James Barnsley says so.

Jon Smith starts out as a “hobby” programmer who writes code to power web software systems. After a number of years Jon Smith is no longer Jon Smith the “hobby” programmer who writes code to power web software systems but is Jon Smith the “professional” who writes code to power web software systems because Jon Smith says so.

In reality neither the word “hobby” or “professional” was needed.

So basically once I got “self confident” enough I decided to stick the word “high quality” in the paragraph. I felt I had reached a “new level” and I needed to inform potential customers of this by sticking the “high quality” label on my website.

Why was James Barnsley not “high quality” at the beginning of his programming practice?

Why is James Barnsley “high quality” now?

Why is James Barnsley “high quality” in the future?

Yes “high quality” is a subjective term anyway, but I do not want get into that. The simple point is that “high quality” is just a label. I could have stuck “high quality” on my website at any time I choose to, it means nothing. Even if I was “high quality” it still means nothing.

These labels can become something that haunt you, they can become something that control you, they can become something that irritate you as shown in the reaction of the person at the company I rang.

The person was probably only defending himself and his company but the word “hobby” or “professional” should not matter, should it? What if my code as a “hobby” programmer was greater than his code as a “professional” programmer.

If I take the humble approach it does not matter whether I got a “very bad” or a “very good” label applied to me because I am none of these labels.

These labels are trying to get me to form a conclusion about myself.

An example would be let us say someone said “I look very beautiful” and I accept that label about myself.

Due to accepting this label internally about myself I have now transferred my value into an external person my value no longer comes from myself but from the person who gave me the label.

What happens if that same person or another person now comes along and says “I look ugly”. I would be devastated right? This is because my value is now being derived externally.

Now what happens if I consider myself nothing and I truly believe this to be the case.

A person comes up to me and says “I look very beautiful”, well instantly I know this does not apply to me.

How can it? Nothing cannot be something can it? Nothing does not equal beautiful. Nothing is nothing. Nothing is not beautiful.

Now someone comes along and says “I look ugly”. Well again. Nothing does not equal ugly. Nothing is nothing. Nothing is not ugly.

So you can get what I am getting at. If I accept either label “beautiful” or “ugly” I have really done myself a dis-service have I not?

In some cases accepting what we think to be the decent label like “beautiful” can actually be just as bad as accepting the “ugly” label because accepting the decent label “beautiful” it has still turned the nothingness into a somethingness has it not?

This means it has opened you up to attack i.e. now that you have accepted you are “beautiful” we can get you to accept that you are “ugly” right?

This is what I mean even if I am “beautiful” and it is true that I am “beautiful” the word “beautiful” has no part of me.

It can be true that I am “beautiful” or “ugly” without those labels belonging to me.

There is a difference between these labels and me even if some of these are labels are true.

I heard someone mention the other day the following statement “I have not been that difficult”, what is this statement saying about the person, why would the person say this?

Somewhere along the persons life someone has called him “difficult” and because he has accepted this label into his being he now makes the statement “I have not been that difficult”.

If the person had accepted that he is nothing then he would not be making these statements or feel insecure because nothing is nothing, nothing cannot be “difficult” and again even if in truth this person is “difficult”, “difficult” cannot apply to him, it does not belong to him. The truth belongs to the other person but not to him.

So in a sense he is right he has not been that difficult because he could not have been that difficult because he is nothing but this is only the case if he has really accepted his own nothingness and if he had really accepted his own nothingness it is unlikely he would be making that statement.

When someone says you are “beautiful”, “great”, “fantastic”, “ugly”, “a prat”, “worthless”, “substandard” or whatever, do not be so quick to accept the label, even if it is true. As stated earlier “truth” can belong to another person without having to belong to you in the same way a “lie” can belong to another person without having to belong to you.

For all the people who feel insecure about themselves and what people think of them I would ask them to really concentrate on their own nothingness and really start to feel their own nothingness. Not from a point of vanity or mere lip service but really feel it.

Lip service or vanity could be saying “I am a speck in this entire universe, a worthless miniscule dot of a person”. This is lip service because as stated before “nothing” is not a “speck in this entire universe” or a “worthless miniscule dot of a person”, nothing is nothing.

Part of the problem about this is people will read it and only understand it from an intellectual point of view. This is similar to lip service only not quite as wrong because at least an attempt to understand it has been made if only from an intelleuctual point of view. The point is to really feel it, really feel your own nothingness.

Please note I am not saying that someone could not catch me out either if they wanted to. I am just saying the goal of the above exercise would be to try to feel your own nothingness emotionally as well as intellectually.

I heard somebody suggest once …

“If someone is making comments on you “good” or “bad” then you mean more to them than they mean to you”.

I do not believe this to be the case. You may not mean anything to the people who are applying these labels to you and as stated earlier if you accept these labels then you may be doing yourself a dis-service.

So anyways going by this more humble interpretation and because putting “high quality” on my website is not going to make a difference in the clients that I get I have decided to remove “high quality” from my website for these reasons.

Start of a new year 2018

Start of brand new year, a clean slate and potential opportunities on the horizon …

Client work

Worked with 3 clients last year which was fantastic and proved more than sufficient. I am currently waiting on a couple of people to get back to me at the moment about potential work.

Neptune – Lead tracker

As stated in my Christmas post. I will be taking Neptune Lead Tracker down at some point this year if it gets no usage by people, no point in keeping it online if no one is using it.

Blog

Will keep the blog going strong this year. I will try to write 1 post per week. The standard I set myself to is to try to write 1 blog post per week but if I miss a post one week I just write one the next week.

Goals

My goals this year will all be centred around improving my skill sets and making myself even more marketable. Up to yet I have been doing other side projects which have side tracked me quite a bit from improving on my own skill set.

I would like to get into more front-end website development improving my skills in front-end languages as well as WordPress and Perch content management systems.

I would also like to get into front-end Javascript frameworks such as AngularJS, React and NodeJS because a lot of contract positions on the market are now demanding these skills.

Website structure

You may or may not have noticed that the website structure in the “left side menu” has changed. The homepage of the website is now what use to be the “hire me” page and the website blog now has its own seperate page instead of being the homepage.

Basically if you want to access this blog from now you will have to click “Blog” in the “left side menu”.

I have also updated my portfolio to include a graphic containing images of the projects I have worked on. So each project in the “Portfolio” in the “left side menu” now contains an image of the project.

Looking forward to see what this year brings.

Merry Christmas and a happy New Year – 2017

Another year gone by and it is nearly time for Christmas.

Over the last 12 months …

Client work
I have taken on and worked with 3 new clients this year. As you may or may not know I am a one man contractor and my contracts generally last months at a time so 3 new clients has proved sufficient.

Toolkit
I have worked on an internal system for managing my business which is 90% complete. For all intents and purposes the Toolkit is completed. The remaining 10% will involve adding any remaining features I can think up or that may be needed.

Neptune – Lead Tracker
I have developed the initial Neptune Lead Tracker and put it online. Neptune has not seen much growth as of yet, I will leave Neptune for 1 more year then take it down if no one is using Neptune. – http://www.neptuneleadtracker.com

Czech Character Code Converter
I developed a web based software script to help me with work on a particular client this year. Afterwards I gave the web based software script a basic front-end and uploaded it online so it can be used by other people. – http://www.czechcharactercodeconverter.com/

King of Adem
Started writing code for a multiplayer strategy game. This project is on the back-burner at the moment and will remain there until some interest is shown from a game developer who would like to take the project further with me.

Overall a very good year.

As I wind down for Christmas I will not be writing anymore blog posts until January 29th 2018 so please check back then to continue reading my blog.

I wish you all a merry Christmas and a happy New Year, until next year, bye for now.

Agency vs freelancer my opinion

So I read a lot of articles online about “Agency vs freelancer” the subject of the article being from a client point of view which is best to go with in terms of completing a project successfully.

Sometimes I read the article on a general web development article website which is fine. However sometimes I read the article on a web agencies very own website.

I have possibly written similar articles in the past on this website which I have now deleted and let me tell you why in my opinion it is not a good idea for multi-employee agencies to post articles like the above in their blog.

So let us be honest the article is intended to big up the agency whilst making the freelancer look like a bad choice. This is the fundamental intent of the article and that is why it was posted to the blog in the first place.

Whilst on the surface the article seems to do this there is another underlying tone to the article in my opinion which communicates a different message.

The message it communicates is that the agency views the freelancer as the competition. Writing “Agency vs freelancer” or similar as the article the agency has automatically created the freelancer as the competition. This massive, cutting-edge, leading agency views this small, tacky freelancer as the competition?

This is similar to say Rolls Royce viewing themselves in competition with Ford. Ford does not lose any sales to Rolls Royce and Rolls Royce does not lose any sales to Ford, they are at completely different ends of the market.

The article can give an impression that is at odds with the articles intended purpose.

Having said all this I will also say that there is one other area I will mention in relation to articles such as the above.

Many of these articles attempt to portrait that an advantage of going to an agency is that you get a “team” of people working on your project vs the 1 person freelancer working on your project.

The way this is generally written in the article tends to try to give the following impression …

Freelancer hourly rate = £50
Agency hourly rate = £100

Wow, I am getting a full team of people working on my project rather than the 1 person freelancer for only double the price.

Errrrmmm, not quite. You see that is £100 per hour. So for an agency of 8 people that will cost you £800 per hour. The result is more like as follows …

Freelancer hourly rate = £50
8 person agency hourly rate = £800

You are still paying by the hour no matter what way you look at it. You just happen to be paying double per hour in the above example to have 1 person work an hour for you from an agency.

Let us face it, freelancers have contacts as well and I am certain that if you where willing to pay the freelancer £100 an hour it would not be very hard for the freelance to get some external resources into the project himself thus forming a mini-agency.

Infact you could have just given the freelancer the break he needed to expand his business himself into an agency.

Internal system – Toolkit

I have been using a web based product called ActiveCollab for sometime now …

https://activecollab.com

I have been using ActiveCollab since version 4. When ActiveCollab 5 was introduced it had a complete redesign, less features and a more slick user interface.

More features have been introduced to ActiveCollab 5 though since it was first released.

ActiveCollab is a project management system that also handles Time Tracking and Invoicing plus more.

I will continue using ActiveCollab for projects / task management however for other areas of my business I have created my own internal tool which I have named “Toolkit”.

I built my own system because I wanted a system that would do the following …

Estimate earnings
Fixed fee and retainer projects are entered into the Toolkit. The Toolkit can then estimate monthly and yearly earnings based on the projects entered. The projects also includes a way for me to manage all the projects I am working on.

Incomings
The Toolkit has an area in which all incomings can be entered. The incomings can then be exported in a format appropriate for my accountant.

Outgoings
The Toolkit has an area in which all outgoings can be entered. The outgoings can then be exported in a format appropriate for my accountant.

Mileage
The Toolkit has an area in which all mileages can be entered. The mileages can then be exported in a format appropriate for my accountant.

Leads
The Toolkit has an area in which leads can be managed. I actually pulled this area out of the Neptune – Lead Tracker – http://www.neptuneleadtracker.com software system.

CRM
The Toolkit includes an area in which all the companies and people I have worked for can be managed. ActiveCollab does actually include this feature but the Toolkit version allows more advanced search features and has fields on the create / update forms to match my exact needs.

Timetracking
The Toolkit includes an area in which all time entries can be tracked. ActiveCollab does have this feature.

Invoicing
The Toolkit includes an area in which invoices can be created. Invoices can also be generated from time entries. ActiveCollab does include this feature but the Toolkit version matches my exact needs precisely.

Notes
The Toolkit includes an area to keep notes. ActiveCollab does include this feature.

Files
The Toolkit includes an area to upload files. ActiveCollab does include this feature.

ActiveCollab has a more slick, beautiful user interface but in terms of functionality built specifically for myself obviously the Toolkit wins.

The Toolkit is primarily made up of CRUD screens, no fancy UI / Ajax heavy screens here. Just datagrids and buttons.

I am in the process of live testing the Toolkit I have built and will be moving various functions of my business over to the Toolkit.

What is happening? – general update

I thought I would dedicate this post to informing you of what I am doing right now …

Work
I am currently in a contract with a client at the moment with a rolling end date which means the contract extends indefinitly until I am not needed anymore by the client.

The company I am working with is an agency that creates web based software for their clients. I am currently designated to working on 1 of their projects with another developer who is also a contractor.

I remember when I first started there was a lot of “scare” factor about freelance dry periods and how work can be hard to come by. Looking back over the number of years I have been freelancing I can safely say this has never been a problem.

Yes there has been short dry periods between contracts but another contract always comes along in the end. I treat the short dry periods as my holiday time like regular employees would book their holidays off I have my short dry periods.

It must be mentioned though that in the dry periods I also dedicate a couple of hours each day to looking for new work. Generally what happens is after a number of days a pool is formed of potential leads which gets filtered down into potential actual contracts I could take on.

Like I say, getting work has never been much of a problem. Getting high paying / decent work is a little harder but still not much of a problem.

Infact I was thinking the other week that if I had someone looking for work on a full time basis rather than just me doing it a few hours a week in my dry periods. There would actually be enough work generated not only for me but enough work to grow my business.

The reason I have not done this yet is because I would want the person who is finding the work i.e. my potential business partner to be well known by me and most of my well known collegues already have jobs and they would not be willing to take this chance with me.

Secondly although I am a one man business I am actually quite alright just as I am. I can get the work for myself and provide myself with a reasonable income.

To all the new freelancers out there I would say do not be afraid of finding new work but note that the work might not always be with direct clients.

Sometimes to get work you may need to go to other agencies that act as middle men and sometimes you might need to consider taking up “real” contract jobs i.e. short jobs that are advertised on job boards by job agencies related to your area of expertise that pay a high day rate.

Contract jobs can be treated like projects. If a business is willing to pay you a high day rate for a period of time. Take the day rate and times it by the number of days you are contracted for, that is the value of the project.

Neptune – Lead Tracker
So whats the deal with Neptune? A number of months ago I posted some posts about the Neptune project and the progress I was making on it. Then I released a post telling everyone Neptune was released.

Neptune can be found at …

http://www.neptuneleadtracker.com

Neptune was originally released as a paid product due to lack of sign ups and a need for a user base to use the product and provide feedback I decided to get rid of the paid plans and just have a free plan. Anyone can now sign up and use Neptune for free.

In short, Neptune is currently in a holding area at the moment. It is functioning product that allows you and your team (it is multiuser) to keep track of any leads you might have. My intent is to have people sign up to the free plan and use the product.

This initial user base can provide feedback on the product and have some say as to the direction Neptune will take in terms of its next features / functionality.

I could keep adding features and improving Neptune myself to turn it into a fully featured product however my thoughts are if people do not use the basic version why would they use the none basic version.

Potentially I know it is possible people would use the fully featured but not use the basic product however it is a big time investment to build the fully featured and then not have people use it.

So I have decided to stick with the basic product for now and see if people use it. If people start using it then I can dedicate more time to it as needed.

Czech Character Code Converter
I created the Czech Character Code Converter because a client of mine had a Czech language version of its flagship product. I was given blocks of text in Czech that needed to implemented within the system.

The blocks of text needed to have the Czech characters converted to their respective characters codes to be implemented into the system so rather than convert each character manually by hand I built a small script to do it. I then gave the script a user interface and uploaded the script online.

Czech Character Code Converter can be found at …

http://www.czechcharactercodeconverter.com

The script saved me a lot of time. Although the script is small and simple I have no intention of expanding the script any further and it is considered a completed project. If anyone has any ideas on how to improve it I may consider implementing the ideas but other than that no improvements will come of it solely from my perspective.

King of Adem
King of Adem the latest project to hit the project list and born out of my wanting to learn IOS development. This is a huge project and I only have part time hours to dedicate to all my side projects. King of Adem along with learning IOS could take up to a year to build and in truth the King of Adem project was probably too large a project to attempt to learn IOS development.

I want to build King of Adem and I want to learn IOS development. Both of these can be done seperately or they can be done as one project. I could learn IOS development and do a simpler project whilst still building King of Adem in the background. Alternatively I could incorporate my IOS development learning into the King of Adem project because part of the King of Adem project requires an IOS application.

Most likely to happen is the following …

I will learn IOS development as my primary goal and develop King of Adem as my secondary goal. I will learn IOS development by following the video tutorial course I have downloaded and taking on a simpler IOS project to enhance my development. The King of Adem will take a secondary position to the IOS development learning until the IOS development learning is complete then King of Adem will take the primary position.

Essentially both projects will still be happening at the same time but the IOS development will have more time dedicated to it at the start until complete then the King of Adem will get the most time dedicated to it until complete. As a rule it I will split it 75% / 25% in other words 75% will be spent on the IOS development learning project and 25% on the King of Adem project. After the IOS learning project is complete King of Adem can have 100%.

That sums up what is happening in my business right now. I hope this article ties up any loose ends anyone might have about the projects I am working on. It has certainly helped me clarify where I am with each project and what I intend to do with each project.