Good tips, thank you. I started in algorithmic trading with Java and Entprise-y stuff. Got bored and moved to front-end. Now looking to move to ML. Like you, no degree, but I apply anyway as long as I feel I have the right signaling.
With investments from tech companies AND banks AND movie studios, and with half-a-dozen R&D outposts all over the world, it's hard to believe these investors just bought into vaporware.
I have this fantasy of starting a company dedicated to building Linux laptops for developers. Great displays and keyboard, generous ports, beefy specs, with a willingness to trade off size and weight.
I think it hasn't happened yet because it's probably economically not viable.
I feel like Tim Cook decided to double down on the "Apple as a luxury brand" business model.
If that's the focus, then it makes sense to emphasize thinness, aesthetics, and raise the price at the same time.
Microsoft on the other hand seem to be working hard on winning developer mindshare again, as they know they can't compete with Apple in the branding space.
I hope the surface book 2 will have a 32gb option.
It's rumored that the Surface Book 2 will use Kaby Lake and have a 32GB option. So does this mean the only way MS can support that is by increasing size and weight to 7lbs+?
I've been using Ubuntu on my desktop for three years now. I love developing on it, but the consumer aspect has minor annoyances.
- If I have a PDF with advanced features, then I need to use Windows.
- Chrome, VS Code, and a few select applications flash repeatedly once up to a certain window size. Found out the problem has something to do with AMD graphics chips.
- I think Libre Office is horrible.
- Linux is still a second-class citizen for certain major apps such as Skype. I wouldn't mind ditching Skype altogether but some clients demand it.
I've never used a Mac, but I can't help but think it's the best of both worlds...but Apple keeps making decisions which I feel sidelines developers.
I approached learning Clojure the way I approach learning everything else. I survey the resources available, then pick the two best books. Ideally, I want them to come at it from different perspectives. e.g. one may place an emphasis on doing stuff with Clojure while another may be more about functional programming.
I then wrote a data processing app in Clojure; consuming financial data and finding patterns in it.
My suggestions are:
1) If this is your first time learning a functionally-oriented language, clear your mind from any kind of assumptions picked up from other languages.
2) Get a handle on the core tenets of functional programming: immutability, purity, composition, and functions as objects. If you know Javascript, then a lot of this stuff may already be familiar to you. JS is underrated in that department imo.
3) To me, writing programs with Clojure is akin to playing with Lego. You write your base functions, then higher-level functions which use those base functions, and so on. Functions all the way down.
4) Write something with it; it'll force you to decompose your program and think functionally.
Clojure is a simple, opinionated language. I don't think you'll have a hard time picking it up at all. The hard part will be to think in a manner amenable to it.
These days, I think Clojurescript has overtaken Clojure in terms of traction, so if you're into webdev, then CJS would be a natural next step.
Nope. Still commuting. But becoming remote is my number one goal.
At the moment, I have a client outside of work (ReactJS stuff), and am negotiating a remote gig with a company in California.
I agree that exotic technologies give you a leg up.
My stance is also that, if you're pushing for remote, then by definition you need to justify why you're a better choice than your remote competition who may live in lower COL areas.
If you're remote, then why should someone pay you a high salary vs. paying a lower one to that bright guy in Romania, who can still live like a king?
That's where marketing, differentiation, and service come in. But these are just my guesses.
Everyone has a plan until they get punched in the face.
I'd say non-programming fundamentals took about two months at about 4-6 hours a day, with the majority of that dedicated to algorithms and data structures.
Clojure. Before learning Clojure, I didn't even have a career. I just wanted to get into software development.
But at the time, all I knew was a bit of Python. And while I could've learned Java, I figured that being yet another Java programmer in the marketplace, but with no experience and a liberal arts degree, was probably going to get me nowhere.
So I decided I had to learn something emerging. Something where there was nascent demand but not much supply. I chose Clojure because it looked weird, and all these bright people were talking about how great it is. I invested a couple of months learning it deeply, open-sourcing my side projects, and blogging about it. I also spent that time learning non-programming fundamentals.
When I felt I was ready, I started reaching out to people in the community and companies on "Who's Hiring" threads mentioning Clojure. Within a couple of months, I landed my first full-time programming gig at an investment bank.
I know that if it wasn't for Clojure, I wouldn't be here today.
My big question, which I'm still struggling with, is how much to specialize.
I'm one of those guys who wants to do everything. After a few years of Java development in financial companies, I now work on real-time web UIs. I'm now eyeing distributed, soft real-time systems with Elixir, and a bit of applied machine learning.
If you look at my blog, you'll see stuff on Clojure, React, and a few other things. So far, the React stuff has helped me land a client.
My question: Is this counter-productive? Should one specialize? How does one adapt when the specialization wanes and a re-branding is required?
A chapter from The Originals talks about that. Specifically a junior CIA agent who got sidelined for her suggestions and ideas, only to have them taken seriously once she was senior enough.