Shaken, not stirred

Apr 24

Which is the best city/town to spend days walking around the streets?

Which is the best city/town to spend days walking around the streets?

Mar 08

What are the most versatile web programming languages?

Full fledged web development seems difficult from the outside since there are too many components involved in it, namely, Javascript, HTML, XML, JSON, Server side business logic(language and the framework), calls to database(may need yet another framework), web server and its configuration/deployment.

I think the following steps should get you through the brick walls.

1. First things first, choose a technology stack(and this should be the answer to your question).
How to choose? Let’s lay down some criteria, I’d go for the stack which has


Some obvious names that ring bells are Python/Django, Ruby/Rails, PHP/Zend, Groovy/Grails. More recently, functional programming is quite a buzz with Clojure.

Now, to state a fact, choosing the stack from the above options is more of a personal choice and fondness. In my experience, Ruby/Rails has some amazing/lot of documentation and community(and jobs, at least in my geographic area). It also comes with some neat features like default server for development purposes(some others do too). Please note, this is only my opinion.
So having frozen on the technology stack, you can proceed to learn.

2. Get decent with the core language, Ruby. How to do it quickly?


3. Once you are through with the basics of Ruby, simply jump onto the band wagon of a couple of “get started” kinda quick tutorials like: http://guides.rubyonrails.org/ge…
There are many such available. Going through such a tutorial greatly increases your appetite to do more, plus there will be a lot of instant gratification.

4. Once you are through one such tutorial, its time for some serious reading. It’s time to read http://pragprog.com/book/rails4/…
An excellent book.

If you are through step 4, Congratulations! You are ready to work on a real life project.

What are the most versatile web programming languages?

Are there alternatives to specialist job boards like HasGeek?

We cannot forget the legen-wait for it-dery Joel Spoelsky’s
http://careers.stackoverflow.com/

It does cater to India too.

Are there alternatives to specialist job boards like HasGeek?

What are the best cities to find a low cost of living, yet a high number of people looking for web/tech positions?

Willing to look east? India? Then there’s a perfect place.
http://en.wikipedia.org/wiki/Hubli

This place is on the cusp of serious expansion, it’s only a matter of time. But until then it will have abysmally low cost of living. Lot of tech schools around that place, hence lot of people looking for tech positions. Plus lot of techies wanting to return to that place, since it’s their hometown. Since there are no good jobs around that area, people have to forcibly move to metros like Bangalore.
Quite a few startups are already up. Like I said, it’s only a matter of time.

What are the best cities to find a low cost of living, yet a high number of people looking for web/tech positions?

What are the most interesting startups that use Java for their platform?

In most cases, UI related code is handled by the one of the newer breeds like Python, RoR etc. The server side engines(backend) are mostly written in Java.

Flipkart.com is a prime example(Indian startup, supposedly worth $1B now). It has a mix of technologies including Java and PHP.

The newer frameworks beat Java black ‘n blue as far as UI development is concerned.

What are the most interesting startups that use Java for their platform?

What is the best way to learn Java?

Read text from anywhere, but just learn to solve the following 15 exercises. This is the trick I use to learn a new language.

  1. “Display series of numbers (1,2,3,4, 5….etc) in an infinite loop.
    The program should quit if someone hits a specific key (Say ESCAPE
    key).”
  2. “Fibonacci series, swapping two variables, finding maximum/minimum among a list of numbers.”
  3. “Accepting series of numbers, strings from keyboard and sorting them ascending, descending order.”
  4. “Reynolds number is calculated using formula (D*v*rho)/mu Where D =
    Diameter, V= velocity, rho = density mu = viscosity Write a program that
    will accept all values in appropriate units (Don’t worry about unit
    conversion) If number is <>
  5. “Modify the
    above program such that it will ask for ‘Do you want to calculate again
    (y/n), if you say ‘y’, it’ll again ask the parameters. If ‘n’, it’ll
    exit. (Do while loop) While running the program give value mu = 0. See
    what happens. Does it give ‘DIVIDE BY ZERO’ error? Does it give
    ‘Segmentation fault..core dump?’. How to handle this situation. Is there
    something built in the language itself? (Exception Handling)”
  6. “Scientific calculator supporting addition, subtraction,
    multiplication, division, square-root, square, cube, sin, cos, tan,
    Factorial, inverse, modulus”
  7. “Printing output
    in different formats (say rounding up to 5 decimal places, truncating
    after 4 decimal places, padding zeros to the right and left, right and
    left justification)(Input output operations)”
  8. “Open a text file and convert it into HTML file. (File operations/Strings)”
  9. “Time and Date : Get system time and convert it in different formats ‘DD-MON-YYYY’, ‘mm-dd-yyyy’, ‘dd/mm/yy’ etc.”
  10. “Create files with date and time stamp appended to the name”
  11. “Input is HTML table. Remove all tags and put data in a comma/tab separated file.”
  12. “Extract uppercase words from a file, extract unique words.”
  13. “Implement word wrapping feature (Observe how word wrap works in windows ‘notepad’).”
  14. “Adding/removing items in the beginning, middle and end of the array.”
  15. “Are these features supported by your language: Operator overloading, virtual functions, references, pointers etc.”

Do not worry about the GUI for the time being.

Exercise source: http://technish.blogspot.in/2008….

What is the best way to learn Java?

Is it a good Java practice to create an interface if there is only one implementation?

What you think is bloating the code right now, may be immensely useful later. You may think currently there is only one implementation. In future there may suddenly be many, of which you had never thought/dreamed about.

From another perspective, if the code goes wrong(messy) just once by a bit, the subsequent maintainers of the code will make the code more and more messy and take the project to a point of no return over a period of time. And needless to say, refactoring is very expensive.

So we need to really think and make sure we are not making that first mess. Of course, at the EOD, its the developer’s prerogative, the rest can only issue caveats.

Is it a good Java practice to create an interface if there is only one implementation?