Posted by: lrrp | July 17, 2015

When will you learn that you are not your code….

main-qimg-f467d4af38d54f3dc284d5519375f736Coders are quick to criticize other people’s code. Is it optimal? Is it reliable? Is it readable? The entire field of quality assurance  is built around the need to find flaws in other people’s code.

Coder culture is driven by what is, at best, well meaning constructive criticism, and at worst is ad hominem sniping.

And for new coders who aren’t used to this kind of environment, this constant criticism can be all too much.

“The most common mistake coders make it to take criticism of their code personally.”

When I first started learning to code, I was timid about showing people my code. If anyone had anything to say at all, it was usually critical. This is simply how coding is. Think about the Linux prompt. When you successfully run a command, Linux doesn’t say “Great job! Everything ran successfully!


No, Linux says nothing when a command runs successfully. It only says something when there’s a problem with your command.This is a good analogy for coders in general. No news is good news. Coders aren’t sycophantic or overly supportive. They assume that if you are showing them your code, you are doing so because you want their help finding ways to improve it.

“The most difficult thing to learn is how to accept, and act on, constructive criticism.”

main-qimg-7603822ad884726bc4c84cfe6127ea03Chess master and Tai Chi champion Joshua Waitzkin compared the world of high level competition to a vast field covered in thorns:

“You can either spend your life trying to trim away all the thorns – so that you can safely walk across them – or you can learn to weave sandals.”

In competitive chess and Tai Chi, thorns are the attacks from your competitors and critics. Weaving sandals is a metaphor for developing a stoicism that can be generally applied, so that you can avoid the herculean effort of single-handedly changing the competitive environment itself.

This applies perfectly to coding. Instead of wishing that coding was a more hospitable and supportive environment to newcomers, we should follow Waitzkin’s advice and learn to weave sandals. Fortunately, in our case, this is rather straight forward. Just remind yourself every day – I am not my code. Then you’ll be able to accept, and act on, constructive criticism.

Posted by: lrrp | July 17, 2015

Be prepared: five killer job interview questions

No matter which side of the interview table you’re on, be prepared with these five killer job interview questions from motivational speaker James Caan CBE…

We’re all familiar with the typical interview jargon, questions like “tell me about yourself” and “what’s your five year plan?” that you’re almost guaranteed to be asked in any interview you attend. Preparation is key so I’d expect every candidate to prepare answers for these sorts of questions, but you’d be surprised at how many people trip up here because they clearly haven’t thought long enough about a strategic, informative and concise answer. Interviews are all about getting to know your character and deciding if you’re a good fit for the business.

Nine times out of ten, the interviewer will know if they’re going to hire you the moment you walk out of the room so every minute should be treated like a pitch, like you’re selling yourself in front of a few dragons.

Startup Stock Photos

If I called your manager and asked what one thing irritated them about you, what would they say?

This question will instantly throw a candidate off because they probably haven’t thought about it before. In reality, it’s just another way of asking what your biggest weakness is, a question you will definitely be familiar with. The secret to answering this type of question is making it relevant and relative to the role you’re interviewing for. For example, if you were interviewing for a role as a PA and you told me that your old boss hated how messy your desk could get, that’s not going to make a good impression, A. because as a PA you need to be organised and B. because a cluttered desk could mean things get missed. If you’re asked this question try and think of a positive you can mask as a negative, something that adds value. For example instead of having a messy desk, how about saying that your previous employer found it really annoying how much of a stickler for time keeping you were and you’d always be on their case about it. As a PA, this is exactly what I need so although being constantly reminded can be irritating, it will show me you have what it takes to keep me in line.

What was your claim to fame in your previous role?

AKA what are your strengths? Here I want to know what you excelled at in your previous role; what would your previous colleagues tell me you were known for? Give me something character building. For example, if you told me you were known for organising the best staff social events, immediately I would think you are fun to work with, a good team player and you understand the importance of culture in the workplace. Or perhaps you’re best known for putting in the hours and staying behind at work to complete a task. If so, this shows me you’re committed to delivering the best possible work and you’re not scared to get stuck in and go over and above what’s expected.

If you had a magic wand and could have any job, what would it be?

This is one of my favourites, I use it in every interview and I like it because I’m always surprised by the reaction it receives. The general rule for this question is always answer with something in the same or similar industry or role you’re applying for. You’d be surprised how many people forget they’re in an interview when I ask this question – some of the answers I’ve had are priceless! Feel free to try something a little witty (depending on the interviewer) but in most cases, the best thing is to always make it relevant or at least give a good reason why you chose this particular career path. Employers don’t like the thought of candidates applying for roles they’re not passionate about so if you can’t illustrate this, you’re immediately at a disadvantage. Take this one for example, I was interviewing for a finance manager once who told me they’d like to be a professional wrestler. That’s great I thought, but how is that going to positively impact the business’ finances? Don’t make the same mistake, your interviewer is looking for reasons to hire you, I’m not sure wrestling will really help you clinch the deal.

If you’re offered this job how could you transform the role?

Employers are looking for more than just somebody to ‘do the role’ – they want you to bring something exciting and new to their team, something that makes you stand out from the crowd. I only recruit the best and the people I do recruit always communicate how they intend on understanding, mastering and improving the role. I want candidates who show ambition, drive, innovative thinking and above all, passion – if you don’t do that, I’m wasting my time.

You’ve got 2 minutes left to ask me anything you like. What’s it going to be?

This is the ultimate killer question because it could be the difference between securing the role or not. I’ve said it before and I’ll say it again; it is absolutely essential to say yes and ask some worthwhile, researched questions. If you don’t ask any questions, this illustrates that you don’t want to know anything else about the business and you’re not interested enough to carry on the conversation. Think about what you want to ask and use it to your advantage. For example, if you know the business has just launched a new product, show you’ve done your research – tell them and ask about it. These last few minutes is your closer, use this time to sell yourself and why you’re the perfect person for the role. If you’re feeling particularly brave, ask straight out what they thought of you and if they have any reservations about hiring you. This way, you can gauge their reaction and they will like your spunky attitude. Never one to follow the crowd, through my 30 years’ experience interviewing candidates I’ve fashioned my very own set of questions designed to throw them off course and get down to the nitty gritty – to see a little of the real McCoy, not just your interview alter ego. My questions are actually interview jargon in disguise but I always end up receiving a wealth of knowledge because you’re not expecting it, you have to prepare right there and then so your responses are true and unrehearsed.

Posted by: lrrp | July 6, 2015

What can I do to stand out as a programmer?

Focus relentlessly on what you can do to make the other members of your team more successful.If there’s a bug, assume it’s your code.  If a less experienced member of your team has a question, answer the question and do so in such a way that doesn’t damage their confidence and instills trust that they can ask you more questions.  Take care of your own responsibilities but be on the lookout for potential problems that aren’t necessarily in your wheelhouse, then work to make sure those problems don’t occur.  Deflect praise to your team.  Take criticism like a professional.

Being a 10x programmer that nobody wants to work with limits your effectiveness to what you alone can do.  A humble programmer who elevates a team of 4x programmers to 7x programmers will be seen as someone who is irreplaceable.

If you are the strongest developer in your company, make the other developer’s jobs easier. Do this by:

  • Providing tools and libraries that make them more productive.
  • Implement a proper architecture that can be well maintained and extended – include the team on these decisions – they     have to work with the design too.
  • Thoughtfully answer your teams questions.
  • Do constructive code reviews.
  • Have a solid testing system in place and insist on high coverage.
  • Provide a proper Agile environment and handle some of the administrative tasks so that the system does not get in their way.
  • Don’t take all of the cool tasks for yourself
  • Promote your team’s accomplishments to the company, and get ahead of the mistakes

If you are the weakest developer in your company, make the other developer’s jobs easier. Do this by:

  • Work harder than everyone else  – you generally want to work smarter, but if other developers are already doing that, you need to fill in some gaps.
  •  Write documentation – in addition to the obvious need, it will help you learn the code base.
  • Pick up the tasks that nobody wants to do  – you will be showered with appreciation.
  • Ask good questions.
  • Learn what a good question is.
  • Have boiled-down, simple test cases ready to demonstrate your question – this process usually answers your own question.

Other Important Points

  • Stay focused, try to do things on your own and seek help when you really need it.
  • Build sample applications on your own.For all your issues you encounter.
  • Always follow good coding practices naming conventions even in the sample code blocks you write.This will burn these good practices in to your work practices.
  • Make something really awesome that other programmers will want to use.
  • Find some open source projects you can contribute to relentlessly.
  • You would always stand out if you know the underlying business of your application.
  • Make many public repositories in Git-hub with beautifully formatted code with unit test like TDD and a solid documentation file for the code.
Posted by: lrrp | June 29, 2015

Understanding HelloWorld in Java

When I first started with Java programming, the fist program I wrote was HelloWorld in Java. That time I just copied it from a text book we were referring, I didn’t know anything about it. It took me a lot of time to understand everything about Helloworld in Java and how it works. From that time, I made it a rule to start with writing Helloworld program in any new programming language I learn and try to understand every single element of it in as much detail as possible, but,  to be frank its not that easy.

When you write say Helloworld in Java,  you are not capable enough to understand everything about it, and I found it better that instead of learning everything in one go, you should give yourself some time to let the knowledge you learned sink in. It’s even better if you write Helloworld program multiple times without looking at  the book. I have found that doing it repeatedly helps you to understand it better.

 * Helloworld in Java, your first Java Program
 * @author Javin Paul
public class HelloWorld {

    public static void main(String args[]) {       
       System.out.println("Helloworld in Java");


I am using Eclipse to write it again but I suggest you guys to use notepad and command prompt because that’s where you understand How PATH and CLASSPATH works in Java. So, if you are writing it in notepad then make sure you follow below steps :

1) Save your HelloWorld program into a file also name as, name of your public class should exactly match with the name of file.

2) First compile your file to create class file, for that just go to the directory where you have saved your file and execute following command :

$ javac

If you get error “javac is not recognized as an internal or external command” it means your PATH is not set properly and system is not able to look for “javac” command it need to compiler Java file. Its usually due to missing JDK bin directory in PATH and I suggest you to read that article to sort it

3) If you able to compile the Java source file then you will see a class file “HelloWorld.class” file in same directory. It means half job is done, now you just need to run it. In order to run a Java program, you need to use “java” command as shown below :

$ java HelloWorld

Remember there is no extension, its just the name of your public class which contains main method. If everything goes well then you will see message “HelloWorld in Java” in your screen or console. If you get error “Could not find or load main class” then you need to check out that article to find the exact reason. This usually happens when you use package to store your class but in this article, I have not used package so you will very unlikely to get that error.

Posted by: lrrp | June 29, 2015

What happens When System.out.println(null)?

    • Compilation Error -This is because you can pass an Object or a String or char[]. Since null can fit in both, the compiler doesn’t know which method to use, leading to compile error.
  • Method Overloading:
    1.public void prinltln(String str) { }
    2.public void prinltln(char[] ch){ }
    3.public void prinltln(Object ch){
  •  It seems the call System.out.print(null) is ambiguous to compiler because print(null) here will find the two best specific matches i.e. print(String) and print(char[]) . So compiler is unable to determine which method to call here .
  • Compilation Error:
  • Compile Fine:
  • It’s the compiler type-checking the parameters of the method call.
  • But here we need to know one more thing  System.out.println((char[])null); will compile fine but at run time will throw runtime exception.
Posted by: lrrp | June 29, 2015

5 Great Snacks For the Coder’s Brain

You’re coding and you’ve been in the flow for a few hours. Everything is going just fine, but then hunger strikes suddenly. Since you don’t have anything on hand, you go to the cafeteria or to a nearby café to grab a muffin or a pastry full of sugar. When you sit down to resume coding while eating your snack, you feel good for a few minutes, but the sugar spike soon wears off. You start feeling like crap, and your productivity screeches to a halt. Sounds familiar?

This happens to everybody from time to time. Working with your brain makes you hungry very fast, but eating a large sugary snack to compensate and topping it with an energy drink is the least productive way to go about it. If you’re well prepared and have good quality snacks on hand, you won’t feel like crap after eating and you will be able to resume coding in no time. Great snacks are also power foods that are great for your health, so it’s worth adding them in your diet.

So here are a few snacks you should try:

  • Nuts and seeds: this is one of the best power snack to keep around since they store well and you don’t need to eat a lot to feel better. You should be making your own mixes if you can, since most trail mixes available on the market are too salty, too sugary or both. You can add all your favourite nuts, but almond, walnut, Brazil nuts, pumpkin seeds and sunflower seeds are all great choices. You can add a bit of quality dark chocolate or dried fruits to the mix for more variety.
  • Fresh fruits: All fruits are also good snacks. You can bring along anything from bananas and apples, but for pure nutritional values berries are the best. I don’t recommend fruits like kiwi that need to be peeled since you don’t want to mess around when you want something quick. Fruits can also be kept at your desk for a few days if you want to bring some in advance.
  • Yoghurt or kefir: Yoghurt is a great source of protein and probiotics, but you should choose yoghurt with as little sugar as possible: you can add your own fruits if it’s too bland for you. I’ve started drinking kefir recently, which is a fermented milk drink with even more good bacterial than yoghurt. It’s interesting but it’s an acquired taste, being a lot sourer than yoghurt.
  • Egg, fish or avocado: Those require a bit more preparation, but the proteins and good fats that make it worth it. Boiled eggs takes only a few minutes for a week’s supply and are easy to eat. Avocados are also fast to prepare: just cut them in two, add some mustard or lime juice and pack them in your lunch. Half an avocado is enough for a snack, and it can easily be eaten with a spoon. And you can bring canned sardines or smoked salmon, which requires no preparation.
  • Vegetable sticks: All raw vegetables that can be cut into sticks like carrots, celery and peppers are good options. If you don’t have time to cut vegetables, you can buy bags of precut vegetables at the grocery store. Pair them with some hummus dip for added protein and you’ll have a great snack on hand. This is a good way to add more vegetables to your diet, we could all do with more of them.

As an aside, if you really like muffins and can’t do without, you can make your own whole grain muffins and use less sugar. Home made muffins will give you less of a crash than white flour and allow you to add more fruits, nuts and seeds. You can also make smaller portion when you bake them yourself, since most store-brought muffins are huge. This is a bit heavier than the other snack options, taking more energy to digest. Many people have trouble when they eat too much grains or gluten, so you should try it and see what works for you.

Which snack are you going to try? Do you have a favourite snack that’s not on the list? I’m always on the lookout for new ideas, so please share your routine!

Being able to quickly and efficiently one-line our skills and the focus of our professional life has a lot of value. The title that we use can effectively tell others what we do, and where our career is heading. Despite this importance, titles are something many of us have trouble with.

“designers who understand code, produce more realistic mockups”

It’s definitely hard to find a title that clearly explains our skills and limitations as a professional. Understanding the full-stack terminology isn’t only beneficial to help give ourselves a title though. It’s also immensely valuable to become that team member who can step in at any phase of a project to help out. Or just to use the skills in planning ahead of what our main job focus may be (It’s common knowledge that designers who understand code, produce more realistic mockups). So, how do we get started?

What is a full-stack designer?

In the “old” days, it was fairly straightforward. There was very clear separation between the design and development groups, with very few people doing both. Now though, it’s fairly uncommon to find a web designer that doesn’t also do some sort of development or UX work as well. With many of us branching into more skills within our industry, we’re becoming increasingly more resourceful. The problem is that now a “web designer” could mean someone who only does design, does design and some code, or may even handle the full design to development process! We’ve become an industry of renaissance workers not content with learning just what we need to get by, and that’s a great thing.

“web designer” could mean someone who only does design, does design and some code, or may even handle the full design to development process”

Enter the full-stack designer. Being full-stack simply refers to someone who is cross-disciplinary and able to take a project through to completion. In this case, it’s referring to an individual who has the skills to carry a project through the first few major project phases. Full-stack developers have been around for years now, handling everything from front-end dev, back-end dev, back-end server management, and more.

I know what you’re thinking: “Great, another marketing phrase is just what this industry needs!” But I can assure you this one is sticking around, and it has more value than a hip moniker. Take a look at a large selection of job openings and you’ll undoubtedly find many “Product Designer” and “Full-Stack Designer” listings.

Fringe benefits of being full-stack

The benefits of expanding our skill sets are quite nice. Full-stack designers often end up with a more thorough understanding of their work, making it more consistent from research to production phases. Knowing the limitations and what to expect in development, while planning UX/UI wireframes, can keep concepts realistic. So not only are full-stack designers more knowledgeable about what can and cannot work elegantly in design, but they also have more realistic expectations before we even start pushing pixels or coding.

Having an expansive skill set is exceedingly beneficial to the people who employ us as well! Our employers are afforded a team member who can jump in and help even outside their area of focus. This means keeping teams lean and diversified with less people, and everyone having more of a grasp of the whole-picture.

There are countless good qualities about having such an expansive skill set, but the most important being you just learn more. Even having a basic foundation in development or another skill can increase the likelihood of learning more in that area. With that small nugget of knowledge already in place, pursuing further education is made easier as the content is already slightly more relatable. So next time you see that article about the skill you’ve been meaning to learn for ages, just go for it. You don’t have to be an expert by the end of it, you just have to remember enough to make next time easier.

The pitfalls of expansive skill sets

It’s taken us quite a while to even get where we are today in terms of education. Being able to instantly look something up and “accidentally” spend the next four hours learning about it is the fantastic future we live in. But, when you have dozens of technologies, practices, and skills to keep up to date, that process can easily result in a long “to-read” list. With so much to keep up with, it’s easy to simply not have enough time. That doesn’t mean we lose lose the skill altogether, it merely means that skill isn’t one of our highlights, so to speak. It’s very common that someone could be an expert with CSS/HTML, yet only have a basic working knowledge of JavaScript.

It’s not only hard to keep up with everything, but it’s also hard to pinpoint which technologies to invest our time with as well. With the industry growing at such a fast rate, there’s a new language, library, and use pattern by the end of each day. Anyone remember the days of jQuery vs MooTools vs JavaScript debates? Pinpointing which skills to learn, and which are merely passing fads can easily make or break a time investment.

Employers aren’t exempt from these pitfalls either. Being a much more skilled team member typically comes along with a higher salary. While most full-stack designers won’t cost the same as multiple designers and developers, they certainly cost a premium to be just as skillful.

Why are full-stack designers important?

Becoming a full-stack anything is special in and of itself. It’s investing quite a lot of time and effort into oneself professionally, most often outside the workplace. So what makes full-stack designers so important? Primarily, it’s the skills in their spectrum. Typically, designers are the ones organizing research, creating wireframes, checking out UX patterns, organizing UI design, and generally making sure we aren’t ending up with stunningly beautiful websites and apps that simply don’t have a purpose.

“Being more than just a cog in the machine is what being full-stack is all about”

Being more than just a cog in the machine is what being full-stack is all about. When it comes to design, that means defining what a project’s purpose and goals are in the planning phases while also keeping design and development limitations and goals in mind. Someone who can thoroughly manage and understand a project from its conception all the way to its first steps into development makes for a much more consistent experience. Some of the best websites, apps, and even products you’ve used were likely created or overseen by a manager with such a vast skill set to ensure such high quality.

The making of a renaissance worker

Expanding our skills and knowledge to become full-stack can be invaluable on a team, and an absolute necessity as a lone freelancer. With quality education becoming exceptionally easy to find, it’s become an enjoyable experience to learn more these days. The hard part it seems, comes with understanding which skills we should learn. Each person’s skill set is unique, and that’s what makes everyone uniquely valuable.

A few years ago, for example, having a hobbyist’s interest in social media almost instantly became an exceptionally valuable asset when the social media boom took off. Companies and agencies were looking left and right for people to help them manage their presence on such platforms. So how do we maximize our value by choosing the right skills?

The best way to pursue education is to always ask yourself what would make you more valuable at what you already do. For most designers, that means learning to code or pursuing a deeper understanding of the science and psychology behind UX design. But for other designers, the answer may mean focusing on print and branding design. It’s really hard to say which particular languages, assets, and skills are critical to have, especially in an industry as fast paced and diverse as ours. If you’re still stumped, take a look at job openings in positions you would enjoy filling. See what they’re requiring and, more importantly hoping for, in a candidate.


Titles are important, there’s no doubt about it. But only because they represent (albeit, poorly) the skills we possess. When it comes down to it, investing the time to further ourselves professionally by expanding those skills only benefits everyone involved. Continued education has always been a part of our fast paced industry, so let’s use that to our advantage and become the best full-stack workers out there.

This article provides some time tested solutions to improve your coding skills. Success is not a product of chance. It is the sum result of all the choices that you will make. The eye-opening tips will transform you into a happy programmer : )

Tip # 1: Make you plan before you start coding.

You can never be too prepared. In this stage, you want to make sure that you understand all the requirements of the users. You also need to ensure that you understand or anticipate future requirements. Come up with a plan that solves the present and can accommodate future requirements with ease. Read this article How to Plan a Coding Project for more details

Tip # 2: Use Version Control Software

“The Only Thing That Is Constant Is Change -”. ― Heraclitus. Bugs are always fixed in software, new features are added and old ones removed. New versions are developed and old code needs to be maintained too. Never say the cat ate my code 1 year down the line after you shipped version one of the killer ERP software and the client wants new features. Read these free tutorial series on Software Version Control with Git for more details

Tip # 3: Use descriptive names for variables and functions

Avoid using abbreviates especially weird ones such as x or y as a variable name that holds data used for computations in a tax program. Make your variables and method names part of the documentation. A descriptive name will tell you what the variable is and what the method is supposed to do.

Tip # 4: Don’t repeat yourself. Write once use many times

Oh yes, the DRY principle. Don’t repeat yourself. Let’s say you have a project that display data to the user in different windows. The displayed data needs to be formatted in a certain way. Instead of copying and pasting the code formatting the data in all the windows, you can create a function that you can call from all those windows that need to format data. This way, you write the function once and use it many times.

Tip # 5: Comment your code

The best kind of comments are the ones you don’t need. Comments should tell you why and not how. There is little value in commenting //this method connects to the database when the method name already says connectToDB. For more details, read this article Code tells you how, comments tell you why?

Tip # 6: Share your knowledge with others

Almost always, there is someone who knows more than you do. Sharing your solution does not only help others. It gives you an opportunity for a review and if someone sees a weakness in your implementation, they will highlight that. If this doesn’t make you better than I don’t know what does.

Tip # 7: Work on a single project at a time

Focusing on a single project at a time has been proven to be more productive than working on multiple projects. Let’s assume you take 10 seconds to finish tasks A and B. let’s say you spend a second on each project then switch to the other. The time it takes you to complete both projects when multi-tasking will be roughly 30 seconds. The other 9 is for switching between projects. If you concentrate on a single project and finish it before you move to the next one then you spent 21 seconds. Read this article by Joel Spolsky Human Task Switches Considered Harmful for more details

Take action now

Kode Blog is dedicated to making you a better programmer. Get free programming tips, tutorials and articles by subscribing to our bi-weekly newsletter below. We promise not to spam and you. Happy coding and sharing!

Posted by: lrrp | June 29, 2015

7 Steps to Becoming a Better Coder

  1. Code more. Code even more. Code even more than that. Code when you don’t want to. Code when you do. Code when you have to fix a problem. Code when you don’t. Code every day. Keep coding.
  2. Help other coders with their coding problems
  3. Re-code the already coded code
  4. Code for a coding contest i.e. top coder,
  5. Contribute code to an open source project
  6. Code design patterns… you know the theories behind design patterns right?
  7. Write tests for your code.


Going the whole day coding without taking a break is one of the worst decisions a colder can make. Plan your time, code for three hours and take a 30 minutes nap. Go to the gym or joking etc.Workout your algorithms on paper before doing the actual coding. Follow the above ritual over and over…

Posted by: lrrp | June 24, 2015

10 team building tips

1. Good Morning

When you enter in the office, before sitting on your desk, smile and say good morning to the team. Yes, E V E R Y day.

2. Listen when someone is talking to you.

When a team member is talking to you, look him in the eyes and show interest in what he is saying.

3. Give space, build trust

Let team member fail sometimes and repair from their failures.You may be always right, but who cares?! Other people need to learn to fail and take responsibilities.

4. Connect

Go and take a coffee with each person in the team separately.


When someone does something good, tell her/him!

6. Keep your personal problems out of work.

Don’t shout at people because your last evening was bad.

7. Do pair programming

Great way to share knowledge and build solid work relationships.

8.  Feedback

Do code reviews without sounding the king of the programming universe. Explain in a calm and friendly tone whatever you want to say.

9. Have lunch together

If possible go regularly to lunch with as many team members as possible.

10. See you tomorrow

When you leave in the evening, if you are not the last person in the team left, say goodbye.

(Marco Castigliego)

Older Posts »



Get every new post delivered to your Inbox.

Join 472 other followers