Hacker News new | past | comments | ask | show | jobs | submit | more saneshark's comments login

Wow! "I'm afraid I just blue myself."


Malcolm Gladwell's much contested principle that 10,000 hours of deliberate practice can make anyone world-class in a field, aside.

Software engineering is incredibly high in demand, there are countless free resources and courses available online, and there are a lot of people out there with the capacity to teach themselves. Software engineering is probably the single most enabling thing one could teach themselves in today's world.

There are people who learned how to code, tossed an app in the App Store and made millions. Or someone who started a wordpress blog, dabbled in some customization and discovered a passion for writing code that they never knew existed. It's like teaching yourself how to read, it enables you to learn and understand more.

It's probably one of the few professions where Malcolm Gladwell's contentious principle holds true. Do it religiously for 5-6 years and absorb everything you learn like a sponge, and you are probably more of an expert in your field than someone graduating from a University because you're on the cutting edge whereas they're just figuring out where they fit into the picture.


Interesting. I actually had the opposite experience. I majored in Economics and worked in commercial banking for a number of years, then moved to Chicago and took a job at a proprietary trading firm, mostly trading Grain contracts intra-exchange. It was incredibly fun, extremely lucrative, but also pretty stressful. That being said, it was great trading from 9:30 am to 1:15 PM, then calling it a day, heading to a ball game, taking in sun. Then of course, 2009 came along, I and a bunch of my peers were laid off by 2010, some of us (including myself) were actually profitable on the year. The firm as a whole really took it on the chin, and a few years later I found out they closed shop. Probably some errant trades in Treasuries or Eurodollars.

In any case, I'd already moved on. I started dabbling in web development in 2008, but by 2010 the Chicago startup scene was taking hold. I got involved, taught myself how to code mostly in Ruby. I had learned QBasic and VBA when I was a kid, and plenty of Matlab at the trading firm, so you could say I had some knowledge, but nothing career worthy at the time. I did the Michael Hartl tutorial for Rails. Started working on an overly ambitious startup idea that went no where. At some point I stopped applying for trading jobs. It occurred to me that I've never been so passionate about anything in my life. I could spend 24 hours straight trying to solve a problem like it was some kind of puzzle that needed to be solved. I redid my resume and quickly went from getting 1-2 hits on my resume a week for trading, to 6-7 hits a day for programming. Ruby on Rails had taken off and demand was soaring. I took a bunch of contract jobs, making $40 an hour. I still remember reporting that I worked on something for 4 hours even though it really took me 12 hours or more. I faked it until I made it. And it worked. Now, I know some 6-7 different languages quite well, and I'm respected by all of my peers.

The thrill of solving a problem still hasn't gotten old for me. Maybe some of the juvenile bro-ish culture has, but the challenges are getting more and more exciting by the day. I'm experimenting with home automation and AWS lambda on my free time, dabbling in hardware.

Now, 6+ years later I have the title of Senior Software Engineer. I've been a lead, I've mentored other developers. I work from home, have the flexibility to live and travel anywhere I please. I couldn't ask for a better career. I've made it a point to learn as much about all the little things that graduate students like to lord over us non CS wielding engineers' heads. I can hold my own and I'm proud of the choices and dumb luck that got me here. To me it is an incredibly rewarding and creative endeavor and I'm still as curious to learn as I was when I started some 6-7 years ago.


Are you still contracting or working full-time?

I work full-time right now, but my dream is to have total geographic flexibility like you.


I work full-time for adhocteam.us, a government contractor. I'm active on vets.gov and we're hiring. Tag me on something you're proud of on Github and I'll take a peak, I'm saneshark on there too.


So this is probably just semantics, but can someone be "pardoned" when they have not yet been tried and found guilty of a crime? Until Snowden is tried and found guilty, he is innocent. What is there to exonerate at present?


Yep. Most famously, Richard Nixon was pardoned before being convicted of anything.

https://en.wikipedia.org/wiki/Pardon_of_Richard_Nixon


It's law rather than semantics. The wikipedia article [0] on Nixon's pardon refers to this specifically:

"After Ford left the White House in 1977, he privately justified his pardon of Nixon by carrying in his wallet a portion of the text of Burdick v. United States, a 1915 U.S. Supreme Court decision which stated that a pardon indicated a presumption of guilt, and that acceptance of a pardon was tantamount to a confession of that guilt."

[0] https://en.wikipedia.org/wiki/Pardon_of_Richard_Nixon


I thought it was "a board is found" not "a bored is found" what is bored? A board would be a bulletin board system, one of many precursors to the modern web.


It is "board". If someone changed it to "bored", they were wrong.


It's a lot easier than Paypal to make an account and send money. Your friends and contacts are already loaded via whatever social network you OAuth[orized] the app through.

It is quite literally as easy as typing a friends name and having it auto completed. Typing in a number and hitting send.

Paypal might have an app that does something similar and it likely came after Venmo gained popularity. For most of us, who have been using Paypal since the 2000s, it might not seem logical, but Paypal UI experience does seem like an archaic UI experience by comparison even to me.


PayPal has had "send money to any email address" since the very beginning, or close to it. Yes the recipient has to then create a PayPal account, but that's usually not very painful.


Have you ever made a PayPal account? Sending in scans of two different photo IDs isn't exactly "not very painful".


yep, works fine ...


I think Venmo must have come under greater scrutiny. I was recently contacted by someone in their support and compliance team about a charitable donation I made to a Syrian refugee cause. I can't help to think that this particular contribution was flagged for some kind of potential Safe Harbor violation. I gave them the name of the charity and they moved on.

It could be that they shut down the api because of the difficulty of doing compliance for these third party apps, after falling under greater scrutiny by government regulation.

Or perhaps there was a specific incident that they're trying to get ahead of:

-hypothetical-

maybe the San Bernardino phone the FBI is trying to crack has Venmo transactions through a third party app that are now under scrutiny.


You're being overly modest. You should mention your contributions to the ruby community with respect to Ruby Object Mapper as an example. I have not used it in a project, but in any future undertaking I will most certainly give it a look.

One of the reasons I've started to look more to Elixir and Ecto as ORM is because issues like immutability come up more and more.

In an ideal world we'd have a dynamic client side querying language like GraphQL, a simple application layer that maps REST to CRUD without constraints pushed upon it based on the ORM, and an ORM abstraction that allows for immutability in our models. Concurrency and race conditions are shouldn't be a developers concern when working with higher level framework.


I'm a strong advocate for this and to an even larger extend some of the improvements that Trailblazer project have introduced.

Reform, a component of Trailblazer, uses virtus for coercion and Dry::Validation methodologies described.

it's worth a look for anyone who found this post enlightening.


I should mention that dry-data will replace virtus in reform, as it's a) faster b) simpler c) more flexible :)


I like the thesis about abstraction, but the example of the Voyager code base is a little bit contrived.

1) technological limitations, namely in processing and memory probably play a large role in some of the decisions made.

2) software engineering best practices such as DRY, KISS as they relate to abstraction have evolved considerably in the 30+ years (perhaps to some extent because the limitations of observation 1 have been lifted).

Obviously the Voyager code base still has the same technological constraints today since hardware can't be updated on a probe currently traveling on the fringes of our galaxy.

It would have been nice to have a more modern example to elucidate the point regarding empathy for peers.

In fact, the same could apply to the thought process in creating a new programming language. Take for example PHP, it was originally intended as a "Personal Home Page," taking PERL and CGI as its model. Method signatures are inconsistent, and not a lot of thought was made early on to certain points that might have been made, had the creator of this language not intended it for his own personal use. In my own experience, PHP offers less empathy for peers because many of the decisions made are from a single-minded use-case. Contrast that with other higher level programming languages where the introduction or removal of new operators is a subject that is heavily deliberated upon from the perspective of or empathy for peers.


That being said, I think it has as much to do (perhaps more) with laziness and hubris as it does empathy for peers.

citation: http://threevirtues.com/


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: