yesno
1) Your problem will be there for a few days but will most likely be forgotten in weeks.
2) Bring a notebook, write your journeys in detail. The food you eat, the tea you drink.
3) Observe local culture.
4) Take a lot of pictures.
Basically, try to forget your day job.
If you travel, I'd suggest you to go to Asia (Japan, Korea, China, India, and SE. Asia countries such as Malaysia, Singapore, and Indonesia). Go to a place with rich culture. Spend a few weeks or even months there.
Those pictures and stories would hopefully make you feel better on your gloomy days.
I've been living in North America for almost 10 years (in particular Vancouver) and the cities get boring quickly. Lack of personality and culture. Asia is completely different; more vibrant.
More importantly: change your perspective on how to live life.
US used to be a symbol of pride among SE Asia tourists: you have to visit US, smell the air, buy their bands, etc. These days, Japan and other exotic locations seem a lot more interesing.
It used to be working there is like some sort of symbol of success. These days, only IT and blue-collar workes who still want to go to US. The rest stay put.
Many of my friends went to study abroad (mostly US and UK) and hope to settle as long as they can like my uncle and aunt who had done the same thing 20 years ago.
About 2 years ago, I saw a change in tide where most of my friends (or friends of friends) were going back home. Most of them prefer to go back home because they would get a better job, which is normal for western educated young worker.
I went back home twice since 2009 and traveled in SE Asia a bit. I see why people wanted to go back: it's not just the job, it's the culture, the networks, friends, family. The whole package.
It's easy to "connect" with people who have big businesses there. Often you meet them in odd places like noodle shops, outdoor markets, food courts.
Night life is definitely better. By night-life I mean strolling down the Clarke Quay in Singapore, eat dinner outside style food court in Jakarta, or wandering around Ginza in Tokyo, enjoy Seafood in Jimbaran (Bali) mostly with your husband/wife and kids. Not necessarily means clubbing or bar. Thus better here is relative.
After a while, the fried chicken and the filet mignon became dry and tasteless to my wife and I. We've decided to pursue ways to go back to Asia starting this year. We'll see if we can go back there soon enough before our retirement (plan was to go back to retire).
I browsed found interesting information. For example: SE in UNIX/C Env book mentioned Unit, System, Integration, and Acceptance Testing. Just like those Agilist/Scrum books are doing these days.
Og Mandino book is sort of self-help book that seems a combination of a few recent self-help books.
They're both thin and easy to read. I suppose I would believe reviews about old books than newer books from now on.
Whether it is worth or not, it depends on how you define worth.
I used to buy the hype cycle out of recommended books by "the internet" (reddit, HN, blogs, etc), for example: the tipping point, wisdom of the crowd, paradox of less, this book, get things done, etc.
But then I figured out that I want to (and should) do my own thing, not to follow someone else's lead.
I sold mine last month and am now trying to get rid the other books as well.
Keep in mind that while it is 6 years old, most of the content are "concepts" of various topics from startups, competition, hackers/recruiting, etc.
Often I saw 2 types of architectures:
1) System-Level
2) Component-Level
The System-Level type of architecture usually shows up in companies (or person that does the explanation) where the tools being used are UNIX-y: python, ruby, rails, django, apache, nginx, mysql, linux/command-line, syslog, etc. These people/companies tend to adopt a strong "pipe"-like architecture.
The mindset here is to write a program/application that does one thing really well.
The Component-Level type of architecture usually shows up in places where there's a strong OOP/Java/.NET culture. Often, this is the place where many people try to write the best damn code possible. You'll see some sort of "ManagerXYZ.java" or "XYZService.java" or "PolicyXYZ.java" or "XYZProvider.java". The Component-Level type of architecture tends to link many components tightly together and somehow each Component acts as if it is a "mini-API".
The mindset here is to write a library/component/class that does one thing really well.
Which one that the author chose?
Now when ugly code happens. Well.. I'd like to stay away from flame-war and all that stuff so I suppose you'd have to make your own judgement which way is better: System-level or Component-level.
Many brick-n-mortar stores (musics/cd, books, video-rental) where people used to sort of hang-out are now closing their doors and filing bankruptcy. Many young people are losing their jobs.
A few days ago I saw Amazon selling video games about $10 cheaper than EBGames (this particular game: Call of Duty Black Ops).
These are places where kids and teenagers used to hang out or even work during the summer.
Automation is replacing humans. Not sure if that's good or bad.
As much as I'd like to buy items cheaper, I'm a bit worried with the repercussion of my action.
Obviously I'm ignorant. Excuse me.
That depends on whom you asked. From my perspective the world was a better place in the past but that's my personal opinions.
Has India become a better country because of all the offshoring? Their GDP might increase, but what about their quality of life? What about those overwork IT workers?
There are 2 things I learned in life so far:
1) There's this thing called "balance".
One gives, the other receives. One gets something, the other lose something. Addition, subtraction.
2) Money is the root of all evil.
I've never perceived that money can make the world a better place. In 1998, money nearly destroys Asia. In 2008, money hurts western countries.
US residents probably have more money than the other countries. But at the same time, check out the obesity level of US residents. Check out how many trash US produces. Why do you think people are buzzing over "green" thing.
If you have more money, you will want more of everything. The end result of this cycle hasn't been good so far.
As of today, the world has more problems than it was. Eliminate one, then two or more problems will arise.
IT is expensive says Management.
So they offshore.
Job is gone.
Once industry sang the same song, we're done. No more IT practitioners in the US.
The shift is happening right now and it happens in a similar fashion: nobody feels it yet but suddenly the rug under them is gone one day.
Silicon Valley is an exception. There are always great companies like Apple and Google. And there are those poor startups that try to overwork the so-called "energetic, genius, creative" fresh-grads.
But the turn-over/turn-around rate is very high.
Stick long enough in this industry and we'll start seeing patterns.
Meh, people have different experience. Yours might be like that because you _are_ in that position.
In my experience, most of these people tend to write quick hacky solutions numerous times. Get a pat in the back. And quickly run away when the said hacky solutions start to smell really bad.
These people do get away with the title "Awesome Excellent Programmer" and tend to continue leaving bad code trails. Unfortunately nobody bad mouth companies for having bad code because it's internal.
In a probably unrelated question to vagrant, would you happen to know if VirtualBox virtual hdd can be shrinked and expanded? And if VB can, does vagrant support that?
Use-case: one 8GB (only use 2GB total) vm instance to be moved from Windows Server to Ubuntu Linux. Or for cloning purposes. Copying 8GB probably would take a lot of time, compacting it to 2GB first then copying it to multiple machines probably would be a lot faster.
Thanks again for creating vagrant!
http://teddziuba.com/2010/10/taco-bell-programming.html
Full-stack programmer at work!
Am I exaggerate in terms of salary? probably... these days, who can learn every single technology (from hardware to software) under the sun?
WebServices, REST, ORM, DB, data modeling, data warehouse, virtualization, security, capacity planning, storage, performance tuning, backup and recovery, test automation (you do test your own code right? not just throwing shitty code to QA right?), build and deployment strategy.
[No, NoSQL doesn't count]
On the other hand, I'd like to have a full-stack CEO as well. Not just someone who can only say "make it work", "make it faster", "make me some money".
Just wait until you need to actually write an automation test and dealt with code/developers who happen to say "well, it's hard to do that now since we have tightly written code".
Ship sinking from that point onward.
Startups, at their first year, might be fun. But second and third year are soul crushing if they don't expand as fast as Twitter or Facebook. Startups have to keep the bubble strong (i.e.: brainwash) to motivate their employees. Otherwise, people will feel burn out due to 12-14 hours of working plus rotation on-call.
Most startups also write hacky code. In the long run, this can decrease moral of developers.
And you're right, there are reasons why turnover is so high in our industry. I don't think working for a big company is one of them. I didn't do a formal research but when I was browsing (re: stalking) in linkedin, the data I saw showed that people who work for a big company tend to stay longer than those no-name/small companies.
On the other hand, keep in mind that our industry keeps on building software to automate a long of manual tasks in a blazing rate. This could also be the reason why turnover rate is high: layoff due to automation.
What if maybe the way we work as a developer can be improved? What if we should think outside the box and be a problem solver not just in coding, but also in real-life?
How about breaking a big task into smaller chunks of 5 minutes tasks? I've seen plenty software developers who just put their head down and start coding immediately without some planning. I've seen developers to take on complex problems with no plan or strategy.
What if the problem can be solved within 5 minutes, the developer should grab a few other developers and start brainstorming? Make a decision tree. List options.
I mean... it's not that all of us need to solve Google type of problems. Even a Math exam question can be done (and should be done) within 5-15 minutes.
On the other hand, this article is an eye-opener that software is becoming a commodity for certain segment of business.