Who are you? Where are you from and what is your backstory?
I’m Shawn “swyx” Wang! Born and raised in Singapore, moved to the US for college and a career in Finance, burned out and found a new career in Tech after a year of transition!
What made you get into programming?
As a junior in finance I found I had the most impact when I wrote a bit of code we needed but didn’t have the dev resources to do. I first started with VBA Macros in Excel, then proceeded to scripting in Python, and app building in Haskell, and finally web apps in JS. Eventually I decided that I didn’t really enjoy the finance part of my job, and decided to go all in on being a developer.
What made you want to be a creator?
I haven’t created any huge products, but I do know internal apps I have made at previous jobs for portfolio valuation, option pricing, and customer analysis were very helpful. I made it simply because we needed it and there was no one else to do it so I just did my best. As a dev, I have mostly created talks and open source knowledge repositories like react-typescript-cheatsheet. I don’t think it is ever done, but the start of it is definitely learning in public applied to my own problems, which just happen to be shared by others.
What does your process for learning to code look like?
I don’t think I have a particular process. I don’t even think I’m particularly good at it. But I think you can go very far with a lot of persistence. I decided on and completed the FreeCodeCamp syllabus in about 6 months. Then I went through a Fullstack JS bootcamp, which helped me land my first dev job.
I have continued to learn since then. Primarily, Learning in Public, which means writing blog posts, talks, and eventually knowledge repositories that are useful for others like me. I particularly emphasize that I don’t mind getting things wrong - I do the best that I can in my learning and research, and put it out there, hopefully making it helpful for others and hoping others correct me when I am wrong.
What does your process for building apps look like?
It depends on the app. I am not a strong designer but I will try to wireframe a bit with Balsamiq or just a pen and paper. It’s good to know your intended outcome (the UI) before you try making any prototype. Then I just get a “crappy MVP” out with basic features. And go from there. I would not say I am very experienced at this yet.
Do you face any particular challenges when building over a period of time?
I do suffer a bit from “new toy” syndrome - there is so much new stuff going on in JS land that I do suffer from fatigue sometimes (particularly CSS and component architecting). I also tend to have feature ideas at a much faster rate than I can build them. The pruning is a struggle.
Are you currently learning anything new?
Yes, I would consider myself still learning typescript. I am also keen on researching how to do end-to-end types with GraphQL - and wrap all of it up in a stack I call the “STAR Apps”. I do think there’s a future framework to be made in that.
Advice for those learning to code?
For those who are very new, don’t feel like you have to get everything the first time around. I had to struggle through the first few times I learned several things in JS and React and Node.js, and it really can feel like banging your head on the wall repeatedly. I guarantee that there are people dumber than you who’ve done it though - maybe you’re just not reading the right resource that just “clicks”, maybe you need someone to talk it through with, maybe you just need more sleep! Hang in there and remember persistence wins the day.
For those who are already on this journey, start learning in public. Answer other people’s questions, write up your learnings, start doing beginner talks. The experts who repeatedly help you out become your mentors. Don’t bother asking someone to sign up to be your “Mentor” - that’s a job with no description. Instead form freely associating relationships on specific topics and try as fast as possible to have a mutually beneficial relationship by picking up on what they put down or by sharing something you know that they don’t. Twitter is a great place to do all these, if you treat it like a professional networking forum.
What’s your tech stack?
Netlify, React, TypeScript, Apollo GraphQL. For styling, I currently use Styled-Components, but am more tentative about that than the other choices.
What have been influential books, resources and links that have helped you?
I recommend these great career advice stories from these industry legends:
Patio11: Do not end the week with nothing
Jeff Atwood: How to stop sucking and be awesome instead
Kent C Dodds: Intentional Career Building
Where can people learn more about you and your work?