Author Archive

What is the best advice you can give to a junior programmer?

We loved this post from Quora and thought we should share it with you.

Answered by Christian Jean

My advice, with over 30+ years of programming under my belt would be as follows…

First I would like to define a few things. For me a programmer is simply someone who has learned the syntax of a programming language and can then write lines of code in an editor, compile it and then run it. Nothing more than that. I can teach my mom and my grandma to become a programmer! Will they be good at it? Probably not. But they are still programmers.

I think that what makes a great programmer is everything around the actual language itself. Which means if as a programmer you want to become great, highly respected, highly solicited ($$$) and valued. Which in turn will bring you the best projects and challenges. Which in turn should make you happy and proud … then you want to be an amazing software developer/engineer and not just a decent programmer.

How do you become an amazing software developer/engineer?

Programming Language – Fundamentally, the actual language doesn’t really matter. It’s simply a bunch of reserved keywords and structured syntax. Some language are better and some are bad. Learn as many as you can and be open minded. Learn the strengths of each language and understand their weaknesses. Don’t fall in love with a specific language and then refuse to look at other technologies because you’re sold on one. Learn to change and adapt. I started with assembler, moved over to C, explored C++ and then thrived with Java. I’ve used and became quite good with JavaScript. Now I’m using Python occasionally and keep looking at others’ potential. In between all of that, I’ve used probably a few dozen other languages and scripting languages (Basic, Basica, Pascal, Delphi, Tcl/Tk, SH, BASH, TCS, KSH, Turing, Visual Basic, C#, Awk, SED, etc., etc., etc.)

Frameworks – Frameworks is a ton more than an actual language. Being able to debug it, being able to instrument it. Being able to mutate it at run-time. The tools and libraries that come with it. Community support for it. Tutorials and training. Platforms that support it. Being able to do static and dynamic analysis. All of these “things” around the language is MUCH more important than the language itself. For me, when choosing the next technology for that 5 year project … it always comes down to this.

Design Patterns – This is probably one of the MOST important thing you can learn as a programmer. Reading them all is one thing. Then you ‘think’ you know them until you try to put them in practice. That’s when you realize that you hit the wall. So when I say “learn” … I mean really learn by actually using them. Create “throwaway” projects just for the sake of gaining experience in programming and design patterns. Later, as you become a great programmer and you want to possibly become an Architect, this experience will make you a great architect. And great programmers and architects are highly respected, solicited and sough after.

OOP – For most languages, you can pretty much categorize them into two distinct groups. They are object-oriented (OO) or they aren’t. And I’m not talking about JavaScript type of OOP (which I laugh at). I mean the C++, C#, Java and other languages. Being able to construct software on the OO principle is fundamentally important. I’ve seen some programmers assemble code together and it was pathetic how they didn’t know and understand their OO principles. There is more than meets the eye here. There is a lot to know and learn.

Architecture – Read books and literature on everything that touches architectures. High availability, redundancy, resiliency, 2-tier, 3-tier, architectural layers, abstraction layers. Look at OS/kernel designs (ie: VFS, HAL, etc). Read Facebook, Netflix and Twitter architectural literature and when they built their systems that way. Read Google literature on some of their distributed databases. All of this will make you an amazing software designer and programmer. They are HIGHLY solicited and sought after.

Integrity and Ethics – For me this falls into an important category. So often I’ve seen programmers who though they were amazing because they spat out code like no one else. They also produced bugs like no one else. Over time, programmers and managers realize this and you will loose respect and value. You won’t be trusted. Why should someone else fix your bugs? Integrate quality in everything you do. Apply the “boy-scout rule” each and every time you commit your code. Test your work (unit, functional, manual) and don’t expect the testers will do it for you. Programming isn’t just about writing code. It’s about writing quality code. Write quality comments in your code and in your commits. Apply best practices (ie: keep methods short and to the point). Document your designs and architectures. Doesn’t have to be formal documentations. Sometimes, simplicity is worth more than anything. People will appreciate working with you. The list can be quite exhaustive here…

Practice – Put everything I have mentioned above into practice. Day after day, after day. Not just at work but as a hobby as well. Contribute on various projects. Start your own projects. Keep learning and put that skill and knowledge to practice.

In the end, all of the above will make you a much better and valued software developer. Remember that great programmers will always try to surround themselves with other great programmers, which will be beneficial in many ways in the end.

Amor Homes – A Real Estate Website Design & Development

Introduction

Amor Homes commissioned us to design and develop their website to market and sell their wide range of properties within Mombasa, Kenya.

Solution

We designed and developed a customized and scalable real estate website that is easy for Amor Homes to manage. The system is made from WordPress content management system with a customized theme to suit their brand. We extended the website with a plugin that will be easy for the administrator to add and edit properties.

The Home Page

An introduction to Amor Homes with their services

The Property Listing

Listings of all properties under a specific category where a client can choose desired listing.

The Property Page

Showing you the property with pictures and description. If a client likes the property, they can send a message to the real estate agent

If you need a real estate property management website, you can call us on +254780972727 or send us a mail.

Sunday Best Safaris

Sunday Best Safaris wanted a redesign of their old website which was static and their safari itineraries were out of date. After a thorough research on their company and its niche market, we came up with a website that uses a sidebar with all of their safari programs.

Home Page

Simple home page showing some of the safari itineraries from the main starting points

Safari Itineraries

We designed a page that will show all their safari programs starting from one location in one cluster. This makes it simple for tourists to check all safari programs that start from a specific region which they think will be easier for them to start the safari from.

Safari Program

A detailed safari itinerary showing day by day destination of the safari is paramount in a tour company website. Photography of possible wild animals they they might see while on this safari, is also important.

If you need a website for your tour company, get in touch on +254780972727 or email info@crablinks.co.ke.

Working Remotely

It’s been long since we wrote on our blog about our work. We hope to change this. Our main priority though is focused more on our client work, making sure they sell their services and products online.

After having our office for more than 4 years, we decided to close it down and work remotely. In fact, we have been using the office mainly for client meetings, those who prefer to visit us and make sure we have a physical office to believe that we are genuine digital agents.

Most of our clients would call us and meet them at their office for the briefing and we worked from the comfort of our homes or wherever we thought our minds would relax and deliver our work best. To minimize office expenses, we came into conclusion that we would close down the office and let our clients know how we will work on delivering a successful digital product according to the project schedule.

In this digital era, companies have embraced working remotely hence getting better manpower across the world. We have just started this journey and we hope to build better digital products as we work from places that we love and are comfortable.

Thank you for being part of this journey.

Yours truly
The Team

Star Institute of Professionals Website Design and Photography

SIPs (Star Institute of Professionals) were looking for a reliable website design company in Mombasa to redesign their website. They landed at Crablinks after a simple search on Google for website designers in Mombasa.

They wanted a simple website that will showcase their courses offered, calender of events and a gallery for their institute.

Home Page

Features a slideshow of students and lecturers

sips-home

Courses Offered

A simple way to show the courses offered with pictures of the institute

sips-courses

About SIPs

A page about the institute and its accreditation

sips-about