I&#x27;m a pretty new grad out of college and have been doing iOS development for a few years, which I really enjoy, but I&#x27;m worried about becoming too niche in my professional experience. I&#x27;ve done some backend and frontend work for my job, but I still wouldn&#x27;t feel comfortable applying for a job that was asking for &quot;3+ years Rails experience&quot; or something. I try to expose myself to as many new ideas as possible in my personal projects, and have used Android, Haskell, Purescript, Elm, React, Go, Docker, etc but I have not used these at work. I love technology and broadening my horizons, but I also see the usefulness of knowing something well enough to make a significant contribution in it.<p>So my question is: which would be better for my career as a software developer:
1. Become an expert in iOS, trying to become as well known in it as possible, attempting to make popular apps and open source projects, and pushing the boundaries in this area as much as possible.<p>2. Try to transition into something I have no experience in but that I find interesting, like data science, and becoming more of a generalist. What is even the best way to branch out into a completely different field? I&#x27;m passionate and a fast learner, but I wonder if having personal projects would be enough to break into a new field.
Ask HN: Should I try to become an expert or should I branch out?