女编程员的生涯_编程生涯中他们从没告诉过你的7件事

女编程员的生涯

Software education is going through intense democratization via internet, especially amid pandemic.

通过互联网,尤其是在大流行期间,软件教育正在经历着激烈的民主化。

Google recently announced $49/month certificates that teach data analytics, project management and user experience design. Google also reiterated that it no longer regards college degrees in its hiring process.

Google最近宣布了每月49美元的证书,用于教授数据分析,项目管理和用户体验设计。 Google还重申 ,它在招聘过程中不再考虑大学学位。

Amid pandemic, viability of college education has been once again under public scanner.

在大流行中,大学教育的可行性再次受到公众监督。

But there are some skills that can only be attained with experience. You don’t need experience to learn from others’ mistakes.

但是有些技能是只有经验才能达到的。 您不需要经验就可以从别人的错误中学习。

Here goes the list.

清单在这里。

#1:您并不总是需要一台(强大的)计算机: (#1: You Don’t Always Need A (Powerful) Computer:)

Unless you are a freelance, indie, game developer.

除非您是自由职业者,独立游戏开发人员。

The only point you will need a physical machine is when you want to deliver a full-fledged desktop / mobile app.

您唯一需要一台物理机的地方是当您要交付功能完善的台式机/移动应用程序时。

If you have a school / library computer where you can spend some time online, you don’t need to invest precious $$$ in hardware at the first shot.

如果你有一个学校/图书馆的电脑,你可以在网上花一些时间,你根本不需要的第一枪在硬件投入宝贵的$$$。

If you need it anyway to practice code 24x7, a $200 Chromebook might just suffice to learn programming.

如果您仍然需要练习24x7代码,那么200美元的Chromebook可能就足够学习编程了。

Whether it is web development, cloud, algorithmic practice or fun project, there are plenty of online resources you can use to jumpstart your software career

无论是Web开发,云计算,算法实践还是有趣的项目,您都可以使用大量在线资源来快速启动软件事业

  • https://repl.it/ — online IDE that allows you to write and test programs in languages from Python To PHP

    https://repl.it/-在线IDE,允许您以从Python到PHP的语言编写和测试程序

  • Codechef, Leetcode, HackerRank et al — practice algorithms for interviews. Most of them often hold coding competitions where you can win some cash.

    CodechefLeetcodeHackerRank等人-练习采访算法。 他们中的大多数人经常举行编码竞赛,您可以在其中赢得一些现金。

  • JSFiddle — Online IDE for webpage development that allows you simultaneously code in HTML, CSS and JS

    JSFiddle —用于网页开发的在线IDE,允许您同时使用HTML,CSS和JS进行编码

  • Three.js online editor — put your graphical web applications and have fun

    Three.js在线编辑器-放置您的图形Web应用程序并玩得开心

  • Heroku — a cloud where you can deploy your applications for free (all popular cloud providers including AWS, Azure and GCP have their free tiers as well)

    Heroku-一种云,您可以在其中免费部署应用程序(所有流行的云提供商,包括AWS,Azure和GCP都有其免费层)

These are only the most popular examples, and there are plenty more resources available on the web. All you need to find them is to ask in places like Reddit.

这些只是最受欢迎的示例,并且网络上还有很多可用资源。 您只需要在Reddit之类的地方就可以找到它们。

If you are attending an online training / course, you could ask your instructor about any free online resources to master the skill — you will most probably get a positive answer.

如果您正在参加在线培训/课程,则可以向老师询问有关掌握该技能的任何免费在线资源-您很可能会获得肯定的答案。

#2:面试准备被高估了: (#2: Interview Preparation Is Overrated:)

Interview preparation is a millennial obsession. It is stressful precisely because of its intense popularity and competition.

面试准备是千禧年的痴迷。 正是由于它的广泛流行和竞争,它才具有压力。

Instead of making you job-worthy, it focuses your otherwise wonderful capabilities onto single, overhyped and intensely stressful event: Interviews.

与其使您失去工作能力,不如将您本来就很出色的能力集中在单个,过度炒作和压力很大的事件上: 采访

What really helps you in the long run is:

从长远来看,真正帮助您的是:

  • Ability to build large scale systems

    建立大型系统的能力

  • Ability learn new skills in self-paced manner

    能够以自定的方式学习新技能

  • Ability to troubleshoot

    排除故障的能力

  • Passion to deliver things with customer empathy.

    热情地用客户的移情交付东西。

Choose something that could give you a quick start soon after you finish learning.

选择一些可以在您完成学习后立即快速入门的内容。

Those qualities not only gets you industry rewards and promotions. They make you self-sufficient and resilient against layoffs and recessions.

这些品质不仅可以为您带来行业奖励和晋升。 它们使您能够自给自足,并能抵御裁员和衰退。

You can build those virtues by working as interns / freelance / open source. Again, chasing flagship companies for internship won’t be always helpful. Choose something that could give you a quick start soon after you finish learning.

您可以通过担任实习生/自由职业者/开放源代码来建立这些美德。 同样,追逐旗舰公司进行实习并非总是有帮助的。 选择一些可以在您完成学习后立即快速入门的内容。

At entry level, do not judge positions based on salary. Instead, go for something that will give you the right amount of practical learning opportunity + decent money.

在入门级,不要根据薪水来判断职位。 相反,要寻找可以给您适当数量的实践学习机会+体面的金钱的东西。

At entry level, always remember:

在入门级别,请始终记住:

Money is trivial. Expertise is secondary. Getting your hands dirty is necessary.

金钱是微不足道的。 专长是次要的。 弄脏双手是必要的。

Just get your foot inside. Slowly but firmly. Rest will follow.

刚进入你的脚。 缓慢但坚定。 休息会随之而来。

#3:风格不错,但设计更好: (#3: Style is Good, But Design is Better:)

I have seen teams spending entire sprint cycles deciding on ideal case their code should be written in.

我已经看到团队花费整个sprint周期来决定应该编写其代码的理想情况。

Then there are Curly Braces Wars:

然后是大括号战争

function someThingThatDoesNothing() {
console.log("Hello world!");
}

vs

function someThingThatDoesNothing() 
{
console.log("Hello world!");
}

Somewhat better teams spend endless hours finalizing code review guidelines.

更好的团队花了无尽的时间来完成代码审查指南。

While these are crucial things to maintain code quality in bigger teams, dragging an entire team’s manpower into agreeing on this stuff, and spending back-and-forth code cycles to correct non-compliances is sometimes nonsensical.

尽管这些对于保持较大团队的代码质量至关重要,但要拉动整个团队的人员对此达成一致意见,花费来回的代码周期来纠正不符合项有时是不明智的。

It not only wastes time, but also harms team motivation. Ego clashes that result from such disagreements are totally not worth in the long run.

这不仅浪费时间,而且损害团队动力。 从长远来看,由这种分歧引起的自我冲突是完全不值得的。

Code reviews are unquestionably an important asset in delivering good software. But one must preserve the balance: Code quality is something that you pass on to your present / future teammates and successors. It must not come at the expense of your core promise to the customer.

毫无疑问,代码审查是交付优质软件的重要资产。 但是,必须保持平衡:代码质量是您传递给现在/将来的队友和继承人的东西。 它一定不能以您对客户的核心承诺为代价。

You would be better off spending hours of whiteboard meetings over module designs, internal dependencies, ideal development schedules (whose feature depends on whose module), and numerous user-centered design paradigms.

您最好花几个小时的白板会议来讨论模块设计,内部依赖性,理想的开发时间表(其功能取决于其模块)以及众多以用户为中心的设计范例。

If such discussions cause stirs within the team, it’s probably worth it once in a while.

如果这样的讨论引起了团队内部的轰动,那么不时地这样做值得。

Your project will benefit from a failed design that’s questioned more often than no design at all.

您的项目将从失败的设计中受益,而失败的设计会比没有设计更多地被质疑。

#4:优化固然好,但运输更好: (#4: Optimizing Is Good, But Shipping Is Better:)

Unless you are working in NASA or SpaceX missions, delivering a thousand times is better than optimizing a thousand times, and never to deliver.

除非您从事NASA或SpaceX任务,否则交付一千次要比优化一千次更好,并且永远也无法交付。

A good software developer is always eager to share the outcome of his midnight oil. As soon as he sees every normal use case working, he delivers.

一个好的软件开发人员总是渴望分享他的午夜石油的成果。 一旦他看到每个正常的用例都在工作,他就会交付。

Sure, he sleeps on why his two functions share mostly identical code, with two lines swapped (Do not Repeat Yourself squirming in the grave). And yet they pose absolutely no problem to the customer experience.

当然,他睡着了,为什么他的两个函数共享大多数相同的代码,但换了两行( 不要在坟墓中重复自己 )。 但是,它们绝对不会给客户体验带来任何问题。

He decides to coalesce them into one, and release 1.1, soon after hearing the first 5-star review.

在听完第一篇五星级评论后,他决定将它们合并为一个,并发布1.1。

A rockstar software developer, on the other hand, loses countless sprints to optimize loops that never run for more than 100 items. He keeps optimizing until 100% code coverage is achieved.

另一方面, 摇滚明星软件开发人员会损失无数的冲刺来优化循环,这些循环永远不会运行超过100个项目。 他一直在优化,直到实现100%的代码覆盖率。

Until budgets drain out, and layoffs happen.

直到预算用尽,裁员才发生。

He feels fulfilled, but devastated that his product never saw masses. The team is fired. A dream is shattered.

他感到很满足,但对他的产品从未见过质量感到震惊。 球队被解雇了。 梦想破灭了。

Persistence pays, but only in troubleshooting. Organizations don’t pay you to learn.

持久性是有偿的,但仅在故障排除方面。 组织不付钱给您学习。

#5:您最好的资源不是您的硬件或软件: (#5: Your Best Resource Is Not Your Hardware, or Software:)

Nor it is the best book on programming.

它也不是关于编程的最好的书。

It is the time you spend thinking about a problem — whether in commute, shower, or during your favorite Netflix movie.

这是您花时间思考问题时间 -无论是上下班,洗澡还是在您最喜欢的Netflix电影中。

This time brings your mind into a state of Flow. When you are at the peak of your flow, you are ready to blow up your keyboard. It is this time that you must jump out of whatever you are doing, and build a workable solution. You can optimize it a thousand times, sure. But building it requires some sort of mental Kool-Aid.

这次使您进入了Flow的状态。 当您处于流量高峰时,就可以准备炸毁键盘。 这次是您必须跳出所做的一切,并建立可行的解决方案。 您可以优化一千次。 但是构建它需要某种精神上的库尔援助。

Flow is the name of that Kool-Aid.

Flow是那个Kool-Aid的名字。

Solutions are born in a second. But every minute you spend thinking about them builds your neural links. The effects are far reaching. Once connected, they help you code an hour-long difficulty problem in minutes.

解决方案诞生于一秒钟。 但是,每花一分钟思考,它们就会建立您的神经联系。 影响深远。 建立连接后,它们将帮助您在几分钟内编写一个小时的难题。

When someone tells you why online certifications won’t make you a coder like a college degree, they are basically stating that you did not have that many thinking hours to develop mental programming paradigms.

当有人告诉您为什么在线认证不会像大学学位那样使您成为一名编码人员时,他们基本上是在说您没有太多的思考时间来开发思维编程范例。

Make sure you spend those hours, and it won’t matter whether you even had an online certification.

确保您花费了几个小时,并且即使您是否具有在线认证也没关系。

#6:会议是铁,但空闲时间是黄金: (#6: Meetings Are Iron, But Idle Times Are Gold:)

As I reflect on my 20 years software career, I remember this: My best boss held the least amount of meetings. He always let his team get into the flow.

在回顾我20年的软件职业生涯时,我记得:我最好的老板举行的会议最少。 他总是让自己的团队参与其中。

As a team, we always began our day with political discussions, mocking each others’ favorite leaders. Our next hour will be spent in reading what was hot in tech. That would slowly warm us up to our daily programming checklists. No one needed directions. Everything was self-paced. If one browsed something he liked for half day, no one would intervene. Micro-management was uninvented.

作为一个团队,我们总是从政治讨论开始,嘲笑彼此最喜欢的领导人。 我们的下一个小时将花在阅读技术热点上。 这将使我们逐渐适应我们的日常编程清单。 没有人需要指示。 一切都是自定进度的。 如果一个人浏览了他喜欢的某物半天,则不会有人干预。 微观管理是没有发明的。

Sure, there were times when our boss had to be demanding, and we knew those times. We knew he would never steal our flow, and we always rose to the occasion. We would agreeably spend entire days (often weekends) in brainstorming solutions for emergency hotfixes.

当然,有时候我们的老板必须要苛刻,我们知道那些时候。 我们知道他永远也不会窃取我们的情报 ,而我们总是会抓住机会。 我们会同意花整整一天(​​通常是周末)进行头脑风暴的紧急修补程序解决方案。

But those times were exceptional, which only conformed the rule.

但是那些时期是例外的,仅符合规则。

We had a strong agreement: Meetings are to iron out differences. Idle time is developer gold.

我们有一个强烈的共识:开会是为了消除分歧。 空闲时间是开发人员的黄金。

He was the best boss I had, not because he rarely held meetings, but because he cared for the well-being of the project’s most crucial asset: Us.

他是我拥有的最好的老板,不是因为他很少举行会议,而是因为他关心项目最关键的资产:我们的福祉。

#7:营销被低估了: (#7: Marketing Is Underrated:)

Software jobs are one of the most uncertain areas when it comes to career stability. This is because most silicon money is ultimately fueled by private investors.

就职业稳定性而言,软件工作是最不确定的领域之一。 这是因为大多数硅钱最终都是由私人投资者提供的。

Technically, tech jobs are white collar jobs that everyone wants to get rid of as soon as demands dry up by a drop in the ocean.

从技术上讲,技术工作是白领工作,每个人都希望在海洋一片下降而枯竭后尽快摆脱。

Getting a job on traditional route by applying to HR, passing through interview nets, only to be offered 0.5x salary is devastating to your self-esteem.

通过面试网申请人力资源,在传统途径上找到工作,只得到0.5倍的薪水,这对您的自尊心是毁灭性的。

That’s why, you must keep marketing yourself even while you are employed.

因此,即使在工作期间也必须继续进行营销。

No matter where you are in your software career, you should always have a marketing mindset around anything that you are building.

无论您在软件职业中处于何处,都应该始终围绕所构建的任何事物具有营销心态。

This doesn’t mean sharing every product version screenshot on twitter, and expect your followers to like it. It could also mean open-sourcing some common algorithmic operation (e.g. sorting a collection in a smarter way) without revealing the business logic and sharing the GitHub link on your social profiles.

这并不意味着在Twitter上共享每个产品版本的屏幕截图,并希望您的关注者喜欢它。 这也可能意味着开源一些常见的算法操作(例如,以更智能的方式对集合进行排序),而无需透露业务逻辑并在社交配置文件上共享GitHub链接。

Programmers aren’t in demand just to code

程序员不仅需要编码

Sometimes, social sharing of your deep digging isn’t worth sharing with an entire world, but it is extremely useful for specific community. In such a case, you would do better attending conferences and tech talks. Speaking and sharing your discoveries on these platforms can open unseen doors that could lead you to treasure troves.

有时候,深挖的社交共享不值得与整个世界共享,但对于特定社区而言非常有用。 在这种情况下,您最好参加会议和技术讲座。 在这些平台上谈论和分享您的发现可以打开看不见的门,这可能会导致您成为宝藏。

Since a decade, programmers aren’t in demand just to code. They are also making great money in online teaching (Udemy, PluralSight), making youtube videos, podcasts, or tutorial writing.

十年来,程序员不再只是对代码的需求。 他们还在在线教学(Udemy,PluralSight),制作youtube视频,播客或教程写作方面赚了很多钱。

Marketing forces you consistently reinvent yourself, and rewards are much more than the efforts.

营销迫使您不断地自我改造,而回报远不只是努力。

结论: (Conclusion:)

Having lived through 21st century tech shakedowns of 2008 and 2020, it is an understatement to say that software careers will no longer be the same.

经历了2008年和2020年的21世纪技术动荡之后,可以断言软件职业将不再相同

Learning to code is a great beginning. Learning to steer yourself in the industry is how you can culminate your skills into a fruitful software career.

学习编码是一个伟大的开端。 学习如何在行业中引导自己,是如何将自己的技能培养成富有成果的软件职业的方法。

有关软件职业的更多信息: (More On Software Career:)

翻译自: https://medium.com/swlh/7-things-in-programming-career-they-never-tell-you-about-in-college-6093d338a69

女编程员的生涯

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值