Let's talk about startups - entrepreneur blog - about project management and entrepreneurship
About me
don't know me?
Projects
i'm working on
Contact
get in touch
Links
to other sites

Charasterics of good web developer

August 7, 2009 | entrepreneur, project management
author: Karol Zielinski | comments: 4 | views: 1307
Tags: , , , , , ,

Everyone could be a web developer. Yes – that’s true. It’s not so difficult to learn how to build a website (especially when you don’t need to pay for any tools and you can build your website even using simplest text editor ever). True art is to be a good web developer.

Now, have a look at the list below. Good web developer:

  • needs to know that it is possible to work without specifications. I can even say much more… good web developer should be ready for a lot of projects, in which nobody has a time to create this useless document.
  • needs to know that the most important thing in this job is to create project using the easiest possible methods, as fast as it could be done, the cheapest possible ways. The easiest possible methods? Yes, all of that is because time is the most important. Why does time is so important? Because a lot of similar firms could create similar project much faster than you and then – they can simply take your users away from you. Besides… if you are not Warren Buffet, Bill Gates (read: you don’t have too much money) or you don’t even work for Google, Yahoo!, Facebook or Twitter… most likely you don’t need to pay for dedicated server (huge traffic? maybe a bit later). Good web developer should know about it.
  • needs to love Internet and be interested in it. Good web developer simply MUST love Internet and be interested in all kind of stuff related with it. Web developer need to have an account on most popular social media sites, he (or she) need to be interested in technology used by the biggest IT companies, he (or she) need to be interested in all kind of new web trends.
  • needs to like to learn new things, read tutorials and documentations, test new frameworks, tools and engines. From time to time there are new releases of popular tools, programming languages, technologies. Good web developer need to know about it and need to be interested in it. Good web developer wants to learn new things and from time to time – he (or she) wants to try build the same thing using other (most likely: better) methods.
  • needs to know what is SEO. Yeah! SEO is one of the most important things in web development. Good web developer needs to know what is SEO (search engine optimization) and how to build good website for search engines.
  • needs to know what is usability. Users like easy-to-use tools and websites. Good web developer needs to know why is that and how to to build this kind of website. In addition, it’s really nice if web developer know what is Alertbox and heard about “Don’t make me think” book.
  • needs to know what is image optimalization and why to compress images. There won’t be easy-to-use and good web site, if this website won’t be fast. And… there won’t be a fast web site without methods of image optimalization.
  • needs to know how cache and CDN works. Good web developer can build web sites, that can handle huge traffic without too many servers. This means… caching SQL queries, CDN for static files and a lot of other mechanisms, which good web developer can use, if he (or she) need to.
  • needs to know differences between Internet Explorer (6/7/8), Firefox, Opera, Google Chrome, Safari. I don’t mean cross-browser design – this is the job for a web designer. However good web developer needs to know about differences; as well he (or she) needs to know that in some browsers some functionalities can be done, but in some others browsers – the same thing could be impossible to do.
  • web developer needs to know what is a web server, how Internet works and what kind of protocol does he use. Good web developer needs to know what is a web server (it’s really good to know what is Apache, nginx, Tomcat, JBoss, etc) and who is the client. Good web developer knows what is thin client, web browser, telnet, ssh, TCP, IPv4, IPv6, HTTP and knows the differences between methods POST and GET.
  • needs to know how to use PHP + at least one more programming language. Why does he need PHP? Because each web developer knows PHP, because WordPress is created in PHP, because it’s easy to find good hosting for PHP, because it’s the famoust scripting language. Why does he need to know at least one other language? Thanks to that his (or her) life will be much easier… he can run python or perl scripts in almost all unix systems (without installing new applications or web servers); he can create fast and powerfull software using C++, C; he can create multi-platform desktop applications using Java, Adobe AIR, etc.  If you know more languages… you can choose which language would be the best for the project and what is more important – you can handle more requests and earn more money. In addition, it’s trendy and… trust me – try to work with python or ruby and you won’t be back to programming in PHP anymore.
  • needs to know how to work with MySQL. You can know how to work with Oracle, MS SQL, PostgreSQL, etc. But… without knowledge of how to work with MySQL – you won’t be a good web developer. Fortunately, MySQL is similar to most of the other databases. Btw… I just said, that web developer “needs to know how to work with MySQL”. This means: good web developer can do much more things with his database, than create simple query such as INSERT or DELETE. Good web developer knows how to use indexes and foreign keys; how to work with triggers; how to rollback transaction; what is the difference between MyISAM and InnoDB table.
  • needs to know how to use (x)HTML, JavaScript, CSS. Web developer doesn’t need to design. Web developer doesn’t need to create (x)HTML, CSS or JavaScript scripts. This is the job for a web designer or a frontend developer. However… good web developer has to know how to use these technologies, because… try to imagine that web designer or frontend developer is your client. You need to know client’s needs and possibilities, otherwise you won’t sell anything.
  • needs to know english. Did you born in USA, UK, Canada, Australia or any other english speaking country? You’ve got lucky. All the people from non-english-speaking countries need to learn this language. Why is that? Because most of the biggest companies in the world are from the USA (and propably can speak just in english); because most of famous people can speak english; because most of technical documentations are in english.
  • needs to know how to read (and write) UML. It’s not really “must know”… but it’s worth to know it, because it’s a great method to represent web (and not only web-) applications.
  • needs to know what version control system is, and how to use it. Good web developer see lots of benefits of using SVN, CVS or Mercurial. Yeah, that’s right! Web development (especially in teams) could be much easier thanks to this kind of systems.
  • doesn’t need to know how Flash works, because good web developer thinks that flash sucks. Flash is nice… I can’t say, that it isn’t. I know few people, who can create really nice projects in this technology. However flash projects are also heavy, difficult to use, slow, etc. So it’s simply in opposite to the rules, in which web developer believes.
  • doesn’t need computer science degree. Sometimes it’s usefull, but commonly… on the contrary. Programmers with computer science degree are really good in creating fast algorythms (commonly – really good ones). However in web development… you need something more. If you want to be a good web developer – you need to have an open mind, you must think like a client, like a potential user… not like a mathematician or even not like an IT guy. Good web developer needs to focus on users’ needs, not on his code.
  • doesn’t need to like write documentations, user guides, etc, but know why he (or she) need to comment his (or her) code (and do it!). From time to time… web developer has to write some documentation for himself, for a client, for other members of his team. Trust me – nobody likes it. That’s why someone invented javadoc, phpdoc, maven site and all other similar things for automatic creating technical documentations. This kind of tools are based on comments, so that could be the first reason why to use them. The second reason could (has to) be… it is much easier to find something, fix something or add some new functionalities, if you have a description for most of functions in your code. Good web developer likes to work fast, likes to know where he (or she) can find something in someone’s code… and likes all automatic tools, thanks to which – he (or she) doesn’t need to write documentations manually. Btw… web developer shouldn’t create user guides. He has got too “technical brain”; he knows too much about project. That’s the work for project manager or eventually – for a client.
  • doesn’t need to like talking to clients, but he needs to like talking with other team members and other web developers/designers/entrepreneurs. Good web developer should talk to other web developers, web designers, frontend developers, entrepreneurs, internet evangelists. Thanks to that… he (or she) can learn a lot. That’s why he (or she) should write on web forums/dashboards, should write tutorials, comment on blogs, be on conferences and trainings, etc. What about talking to clients? Not really. I know this from my own experience. Some time ago… I gave some kind of promotion to one of my web developers – he became a project manager (it wasn’t really a promotion. I just wanted to ask him for help, because I didn’t have a time for manage next project). What was the result? He was too scared to talk to the client and finally I had to manage this project by myself, too. However… he was really good web developer and that was a pleasure to work with him.
  • doesn’t need to like UNIX/Linux, but he needs to know how to work with unix terminal, and how to use ssh. Why is that? Simply… unix shell is so powerfull. Commands and tools like ‘grep’, ‘ps’, ‘kill’, ‘convert’, ‘python’, ‘chmod’, ‘chown’ are so much often use by web developers, that they can’t simply imagine life without them. Good web developers use shell accounts to start/stop/restart web servers or daemons; debug applications; checkout projects via version control system; etc.

Are you a good web developer?

For more entrepreurship and start-up articles, follow me on
Twitter or become a fan on Facebook.
Bookmark and Share

Related news and resources

Comments

4Avatars v0.3.1 v0.3.1
Volomike
September 15, 2009, 8:37 pm

Functional Specification, worthless piece of document? I don’t think so. Some of my clients who have built more than one website don’t think so either. Sure, you have to vary the intensity of the doc per client, or perhaps create two docs — one called functional and written at the 1000 foot level, and one called technical and written at the 5 foot level. But to operate without one is a ticket for disaster.

I mean, how can you argue that something is feature creep, requiring extra payment, if you don’t have a spec to say where the lines are that have been crossed? How can you specify estimated hours without taking the time to think things through carefully in a spec?

For that matter, how can my client argue with me that it is to be built and was listed in the spec if we haven’t bothered to work out a spec together?

As much as possible, I try to bring my clients to realize the importance of a functional spec. In many cases, I won’t take a client unless we can get at least a 3 pager down on what it is they want me to build.

Much of what else you say, however, seems correct.

4Avatars v0.3.1 v0.3.1
web 2.0 development company
November 11, 2009, 8:25 am

i like all the content written on web developer. . . the points has really good. these days it is recommended to have the knowledge of SEO to develop the websites .. . & all points really very useful for me .thanks

4Avatars v0.3.1 v0.3.1
G Holister
June 14, 2010, 11:18 am

Not needing a functional spec is dependent on the client. If you have a client where this is possible, you’re won the client lottery.

Write a comment

Other reactions (e.g. trackbacks)

4Avatars v0.3.1 v0.3.1
Characteristic of good project manager
December 4, 2009, 4:53 pm

[...] should already know what means to be a good web developer or a good web designer. Now… it’s time to explain what does it mean to be a good [...]

Most popular posts
Most popular tags
Recent comments
Much more links
Karol Zielinski      |   contact me
Gdynia, Poland
RSS - Let's talk about startups - entrepreneur blog Karol Zielinski on twitter Karol Zielinski on LinkedIn Karol Zielinski on facebook Karol Zielinski on delicious Karol Zielinski on digg Karol Zielinski on flickr Karol Zielinski on stumbleupon Karol Zielinski on technorati