TECHRISE students came up with a bunch of great questions to be answered by a Paypal engineer friend. I’m going to interview her later this week, but I thought why not give my own thoughts on these questions as well :)
I couldn’t cover everyone’s questions, but here’s my take on some of them.
Although starting from a young age might correlate somewhat with your ability to write code, there are many people who have started programming after college and are great programmers. Initially the key to getting better at programming is writing as much code as you possibly can, but at a certain point, it is more about the type of content and information you expose yourself to, of which many are free online. In other words, read a lot of good books programming related or non-programming related and expose yourself to more ideas and more knowledge.
On that note, I’m starting to compile a list of resources that I think are really good (list is incomplete):
Another thing to note is that being a whiz programmer doesn’t always mean that you are the most valuable programmer in the company - the person who contributes most to the business and can solve problems most is the person who will be valued the most :)
In the end, our job as programmers is to solve business problems, not to write unnecessary complicated algorithms.
I don’t think we can call TECHRISE a successful business just yet, but I believe that it’s really about trying your best to provide as much value as you can to your customers in a way that others can’t. And to do so, it most likely takes tremendous amount of hard work, diligence, and persistence.
We also try different things out and see what works and what doesn’t. We try to study how we can provide value and how we can provide value to more people as well.
In terms of software engineering, I think the ability to solve your own problems and learn new things on the fly is really important, since technologies are changing constantly. Another thing that is really important is to be able to communicate well.
For big companies, it really depends but Java is seems to be pretty strong is what I hear a lot.
Start building a big project or join/intern at a company. When you start an ambitious project, you’re forced to learn more deeply about advanced topics on your own. The hard part is getting to the part where you can actually learn the things on your own, but that’s why TECHRISE is here :)
You can never learning 100% everything about a framework and furthermore, it’s not just about frameworks, you need to learn about software engineering principles, how to write modular and reusable code, etc.
I think there are a lot of reasons, but what I hear a lot is that PHP has a negative image for stringy, bad code.
Although I’ve never written in PHP, the more reliable sources of information that I’ve read say that PHP itself isn’t bad, but it’s just the people who write it are not always the best. It’s just a matter of probability, because the barrier to entry for PHP is so low. It’s a really easy framework to get started with, thus you have beginner programmers writing really bad code, which leads to the image of PHP = bad code.
The other factor is that other frameworks like Ruby on Rails or Node.js offer traits that lead to more developers using it. For instance, Ruby on Rails = Programmer Happiness and Node.js = Fast and good for streaming. When the growing companies start to use these newer technologies, more people get interested, and as a result, the older ones start to get less popular.
I’m not sure there is a secret, and it really depends on how you define “great programmer”. But I really believe that there’s no secret, it’s just about loving what you do every day, spending lots of time with it, and reading about code, writing about code, reading code, and writing code. I don’t think I’m a great programmer by all means - there’s always so much to learn, which is also the fun part about programming.
It depends on what kind of positions the company is looking to hire in. For example, for senior engineers they might be looking for expertise in a specific technology.
For junior developer positions though, most companies will be looking for these things:
Personally, startups are more interesting (I guess this goes without saying). While I do think joining big corporate companies could be beneficial, it really depends on your goals. I am personally more interesting in trying new things, failing, then trying again and it finally goes well. I’m also personally interested in putting myself in an environment where I am forced to learn things quickly, which startups tend to offer, since you have to do a lot of things yourself. Startups are creating something from scratch, much like coding.
Seeing some of my friends succeed in their startups, I am always inspired to make as big as an impact as them. They started out small and in a matter of months, they grew into a substantial size.
I also wake up everyday pumped to work on making TECHRISE better, and it’s probably something that’s hard to experience when you join a big company for many reasons.
On the other hand, big corporates offer structure, stability, and a brand. If you join one, you will have that brand with you for the rest of your life, which could be beneficial. You will also have some top talents since joining these companies can be quite competitive, thus you have higher quality talent (you do have top talent in Silicon Valley startups and many other startups as well, on the other hand).