<p>I joined a company with the understanding that I'd be writing Golang which I've done for about two years.</p>
<p>Since being here I've done a bit of maintenance of some poorly designed/sophomoric code written by former employees who jumped ship and I'm now having to work on a Python project which could consume the next 6-8 months with no Go projects in sight.</p>
<p>I had hoped a couple of my demo apps I've written using Go would help make the case but it hasn't worked. I left Python and it's terrible type system behind for good reason, what should I do?</p>
<hr/>**评论:**<br/><br/>interactiv_: <pre><p>Resign and find another job ? unless you're working in a specific startup there are no 100% Go jobs. Go is relatively new so yes businesses have legacy code bases to maintain. And Go doesn't provide a replacement for every use case, especially with codebases written in Python,Java,C# ...</p></pre>driusan: <pre><p>If you follow this advice, make sure you do it in the other order: find another job, then resign..</p></pre>Hactually: <pre><p>My previous role was entirely Golang so I'm surprised by that sentiment.</p></pre>hahainternet: <pre><p>I've been having real trouble finding Golang jobs in north UK for what it's worth.</p>
<p>You don't say how long you've been at this company. 6-8 months is hardly a lifetime, so I would try and consistently find problems with the Python that you can fix easily with Go. That shouldn't be hard.</p>
<p>If after a year or two there's no movement, then I'd jump ship, but I believe in commitment.</p></pre>grizzlychin: <pre><p>Agreed. OP, are you a Go programmer, or a software developer? The best software developers can write fluently in several languages, even if they have one favorite. Companies like Google and Amazon want flexible people who can work in a bunch of different tools. Don't go down the path of only accepting one language, especially a still-niche language like Go. You'll limit your career and also your mental model for programming approaches.</p></pre>p7r: <pre><p>I'm tech lead of a Go team, and I've written ruby for the most part for the last 4-6 weeks.</p>
<p>Company needs are company needs, but if you're down as a Go developer, you should be doing Go development.</p>
<p>So, you could look around for another job. When you are going out to interview, make it clear to management what you're doing and why. If they like you, they'll fix the problem. If they don't, well, you're better off without them.</p>
<p>However, 100% pure Go jobs are still relatively rare. Hell, even as a Ruby developer I had to spend more time than I wanted writing JS, some shell scripts, a bit of Python, a smattering of Lua, some C and C++, and all sorts.</p></pre>j_d_q: <pre><p>When making updates, why not port it to Go and have the Python code call over the network? Eventually you'll have it all in Go</p></pre>throwbible: <pre><p>Short of leaving the job, and explaining that this wasn't what was agreed at hiring, sneaking in Go may be the best solution.</p>
<p>I honestly don't know what OP is looking for, there aren't no magic words that will somehow make Python go away. I know a few people that was hired to work on the new shiny for a software company and instead found themselves working on legacy C++ and Delphi applications, rather than the Java platform they where promised. They all quit within 6 months, and that's pretty much the only solution. </p></pre>CzarSkye: <pre><p>I did this in my last job, the first time I made it sneakily over the weekend. Just be careful doing it on the down low, but it sounds like they have some Go deployed already so may be condusive if you ask. Python is pretty good imo, porting from could be an interesting experience. </p></pre>sihnon: <pre><p>Me too :(</p></pre>bluechipmonk: <pre><p>Why suddenly Python? What kind of company is that?</p></pre>Hactually: <pre><p>Python is used as it's widely known. The problems for me though is that a) it's a waste of my skill set, b) i don't know why you'd write new stuff in Python 2 and c) How do you ever upgrade your stack if you cling to a small subset of tech?</p></pre>: <pre><p>[deleted]</p></pre>toula_from_fat_pizza: <pre><p>Really? You do realize that at the end of the day all programs equate to being an instruction set that performs operations on a machine... I'm not sure if your computer cares what language you are using.</p></pre>dericofilho: <pre><p>It seems more of accident but I would leave the company anyhow. I have seen companies, though, posting Go positions as a tactic to lure the best ex-Python and ex-Ruby developers, only to say they have a mix of Go and something, and that the something is actually running their business. Sad but not that unusual unfortunately. Again, the best line of action is to quit. </p></pre>pkieltyka: <pre><p>I'd resign, there is a lot of opportunity out there.</p></pre>qu33ksilver: <pre><p>This does not seem to be a question related to golang. Stop asking for career advices here.</p></pre>jtarchie: <pre><p>The fact that you asking this question in golang specific forum is just yelling from soapbox back to people that already share your point of you.</p>
<p>Look at this from a career standpoint, not a programming language standpoint.</p>
<p>You were hired for a job, probably a title of software engineer. Your job is to work with other people to help them do their work and build a product/artifact. The tools that you and that company use help accomplish that goal.</p>
<p>A mechanical engineer get's hired at a company is forced to use that workshop and tools that company has invested in. They have to learn and become a subject matter expert in those tools. Maybe the high pressure water blade isn't the one they like, but it still get's the job done. They weren't hired as a mechanical engineer that only knows that specific <em>high pressure water blade</em> engineer.</p>
<p>You have an opportunity to influence that culture. Leading by example is how you accomplish that. Showing, not telling, what you believe the be the correct way helps others understand.</p>
<p>The above comments all stem from experience as a consultant. I've worked on many different programming languages, code bases, etc.</p>
<p>I have preferences for what I enjoy. What always bothered me though, were developers that locked themselves into a particular stack.</p>
<ul>
<li>I only do Actionscript, why is Javascript important?</li>
<li>I only do iOS, why should I know hot to debug the web API?</li>
</ul>
<p>My answer to this question was always, "Because your engineer, therefore a problem solver." You might not know the stack, but I know you can at least poke and prod it effectively. And that can be the fun part.</p>
<p>Also, think about your career.</p>
<ul>
<li>Do you like the company and the people you work with?</li>
<li>Do you think you could learn from other's at the company?</li>
<li>Do you believe in the work you are doing?</li>
</ul>
<p>If you can answer positively to these questions, that's awesome. People are always the most important. You'll work with people you'll love and hate.</p>
<p>Now, I'll get off my soapbox.</p>
<p>Please let me know if you'd like clarification on anything.</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传