To all those who haven’t met you yet. How do you describe yourself?
I have spent over 20 years as a developer, but today my focus is on the developer community. I write, speak, manage sites and programs all focused on developers. Most of this I do through my role as the Developer Programs Manager at Telerik, but I continue to do a lot of work outside of my official duties.
When you started developing, what were some common mistakes you made along the way?
There were so many mistakes, it’s tough to organize them, so let me focus on an overarching theme - an overly idealistic insistence on coding the right way, and a certainty that I knew how to get there. Let me explain.
As a young developer, I believed in the ideal of perfectly architecting an application. I would read a lot and try things out, always trying to write perfect code. One problem was, I was more concerned with doing things “perfectly” than with getting things done. I’d much rather deliver an application late than deliver one that I felt was imperfect, even if those imperfections were under the covers. I was also far too certain of my ability to build this “perfect” application (perfect from an architectural standpoint, anyway).
The thing is, 6 months later, I would always look back and want to revise what I’d done given what I’d learned since. This experience taught me that there was no way to code a “perfect” application as it is a moving target, and taught me to value getting things done over getting things done perfectly. As they say, don’t let perfect be the enemy of good.
Frontend development seems to be easy until you start to learning. How do you face the challenge of learning new things?
I am a voracious reader - mostly of blogs and tutorials around technology and development. So, the first thing is, I stay informed of developments. But, especially today, where my job doesn’t always involve day-to-day coding activities, I find that I need to set goals for myself when I want to learn something. For instance, I may commit to an article on a topic or to speak about a topic, but it’s not necessarily something that I know deeply at the time. However, by committing to the article or session, I set myself a hard deadline to learn it. Basically, learning requires a desire, but also a commitment - and sometimes that commitment means that you create situations that force yourself to learn something.
What would you qualify as the top few problems facing developers today?
I think, particularly when it comes to front end development, developers feel overwhelmed. There are too many tools, too many changes to the language, too many frameworks, too many recommendations - all coming at them at once. In general, the change is for the better, but it’s more than any single developer can comprehend at any one time. There is so much to learn that developers can face a “choice overload” that makes it hard to make a decision on what to focus on.
How would you recommend somebody to start learning web development?
The great things is that web development is one of those things where there are few barriers to learn by doing. You have a browser and you have a text editor (or there are tons of free code editors), so you have everything you need to start trying. There are tons of interactive courses available like CodeSchool or CodeAcademy. There are tons of books from places like O’Reilly (I am a book learner, so I favor this method). There are even tons of videos on places like PluralSight. The key thing is, no matter what type of learner you are, there are resources for you to learn and you already have the tools you need to try it out.
What are the things you would like to have known when you first started?
To have some fun. Find ways to follow your passions - don’t let work dictate what you are allowed to learn. Find time to do the things you love about coding - even if it has no work relevance at all. It will make you a better coder and keep your love of the work alive.
When starting a new project, if you feel stuck where do you look for inspiration?
Often, I need to put it down and walk away. Do something completely different. The answer often comes when you are willing take a step back.
What was your first development job and how did you face it?
I worked for a startup called Latin Trade. I was a very new developer. I’d taken a 3-day course in ColdFusion and done some personal projects using it, but suddenly I was a full-time ColdFusion web developer. I learned a lot (screwed up a lot too). Web development was easy back then though - things have gotten way more complicated today.
What was the most challenging project you ever faced and why?
I’d say it wasn’t a “project” per se, but a need to change course, often quickly. I’ve done back end development, front end development, Flash to JavaScript, ColdFusion to PHP. I literally had one day, when I worked at Adobe, where I transitioned from the Flash and Flex community manager to a new role focused on JavaScript and frontend web development. It was, obviously, a major shift in directions. I had done a lot of work in JavaScript and web development in the past, but it was still dramatic to try to change course and reacquaint myself with an ecosystem that had changed a lot since I’d left.
Can you describe your workflow when you create HTML, CSS and JavaScript from scratch?
I don’t know that there is a process. A lot of what I work on nowadays are proof of concept or demo apps, so the workflow would be quite different than working on a team building real production quality applications. Nowadays, I tend to open up Visual Studio Code (my current preferred code editor) and start working.
What excites you most these days?
I have an unusual obsession on static site generators (I even wrote for O’Reilly about them). I think they solve a lot of problems (ex. speed, security) and meet the use case of a lot of sites on the web (those focused on delivering content). However, right now the tools are purely for developers, but that is changing. When these tools can offer an easy way for non-technical contributors to author and edit content, I think they will go mainstream.
What is the most important thing you’ve learned?
To enjoy things other than coding.
Do you have any favorite books, videos, or resources that you could share with the readers?
I subscribe to over 450 sites, so it’s hard to pick just a few. Of course, I favor the Telerik Developer Network because it is what I run. That being said, I think we focus on a wide range of issues applicable to the broad developer community - not just product tutorials.
Do you have any advice for new developers just starting their career journey?
I always look for developers who clearly have a passion for the work - they love to learn new things, try out things, they read a lot and keep up with trends. It’s not important that you are an expert in everything, but I do think it is important that you are generally aware and know what you don’t know. If you are willing and able to learn new things, any job is a fit - you can be taught a new language, but you can’t really be taught a love and passion for development.
What can we expect from Brian in the future? Anything you want to share?
I have a lot of plans both inside and outside my official job. I am working on some regional events that I hope to run here in Boston. Also, working on a follow up to my O’Reilly static site generators report. Of course I also have a lot of sessions and articles in the works - so, a lot going on!