编程大师访谈录_[访谈]新十年的热门编程趋势和实用建议

编程大师访谈录

UnsplashUnsplash

What will the future bring to the programming world? Are there any specific technologies that will rise and fall? Which programming language one should learn to succeed in their career? What should a newbie programmer know and understand to build a successful career in the 2020s?

未来将带给编程世界什么? 是否有任何特定的技术会兴衰? 在职业生涯中应该学习哪种编程语言? 新手程序员应该了解和理解什么以在2020年代建立成功的职业?

I had the opportunity to sit down and talk about these issues in greater detail with Vitaly Kukharenko, a CTO with 10+ years of experience and creator of several high load startups.

我有幸与Vitaly Kukharenko坐下来详细讨论了这些问题,Vitaly Kukharenko是一位拥有10多年经验的首席技术官,也是多家高负荷初创公司的创建者。

在整个2020年及以后的时间里,将增长哪些顶级技术? (What are the top technologies that will grow throughout 2020 and beyond?)

I think the hottest topic will be Artificial Intelligence (AI) and Machine Learning. Gartner forecasts the AI market to reach $3.9 trillion by 2022. There are more and more companies that incorporate such advanced technologies into their workflows, launching new AI-based products, and this trend will go on.

我认为最热门的话题将是人工智能(AI)和机器学习。 Gartner预测,到2022年,人工智能市场将达到3.9万亿美元。越来越多的公司将这种先进技术整合到他们的工作流程中,推出基于AI的新产品,并且这种趋势还将继续。

The reason is simple – AI is super-efficient when you need to boost productivity by making data-driven decisions. I've experienced this by myself while working on my products.

原因很简单–当您需要通过制定数据驱动型决策来提高生产率时,人工智能是超高效的。 我在开发产品时亲身经历了这一点。

好的,这对编程语言而言意味着什么? 学什么才能紧跟潮流? (Okay, and what does this mean in terms of programming languages? What to learn to stay on top of the wave?)

For AI and ML, Python is very popular right now. And as many of AI-based products are tailored to the web, JavaScript is also here to stay. This is the most widely used programming language in the world, supporting up to 95% of websites. So, it is better to know such tools as NPM or Yarn.

对于AI和ML,Python现在非常流行。 而且,由于许多基于AI的产品都是为Web量身定制的,因此JavaScript仍然存在。 这是世界上使用最广泛的编程语言,最多支持95%的网站。 因此,最好了解NPM或Yarn等工具。

CSS Libraries, JavaScript frameworks – you need to experiment and gather some experience with all that stuff to be able to enter the AI and ML development. Golang is another language that will continue to grow, in my opinion.

CSS库,JavaScript框架–您需要进行实验并积累一些经验,以便能够进入AI和ML开发。 我认为Golang是另一种将继续发展的语言。

是否有编程主流趋势或正在变化的方法? (And are there any programming mainstream trends or changing approaches?)

Honestly, I do not see any significant changes in how software is being developed. No revolution is expected here, and we already have all the necessary tools like methodologies, frameworks, and best practices.

老实说,我认为软件开发方式没有任何重大变化。 这里没有革命的期望,我们已经拥有所有必要的工具,例如方法,框架和最佳实践。

All essential requirements will remain the same: adaptability, focus on speed and improved UX, etc. Headless CMS, single-page applications, progressive web applications – all these things will continue to emerge as an answer to the challenges we face. But all these answers are based on existing approaches. You need to understand the basics of how a good programming process looks like, and you'll be fine.

所有基本要求将保持不变:适应性,专注于速度和改进的UX等。无头CMS,单页应用程序,渐进式Web应用程序-所有这些都将继续出现,以应对我们面临的挑战。 但是所有这些答案都是基于现有方法。 您需要了解一个好的编程过程的基础知识,并且会很好。

谈到最佳实践很不错,以一些建议结束我们的采访。 程序员在2020年应该了解哪些新手? (Speaking of the best practices would be cool to end our interview with some advice. What newbie should programmers understand in 2020?)

Yes, there is a set of rules you need to follow to become a good programmer and get a chance to deliver excellent results while working on exciting projects. These include using standards in the first place. Do not invent the bicycle, use coding standards and standard-compliant libraries as these tools allow you to build better software with lesser effort. For web programmers, PSR, Java standards, PEPs, and compliant libraries help a lot.

是的,要成为一名优秀的程序员,您需要遵循一系列规则,并有机会在从事激动人心的项目时获得出色的结果。 其中包括首先使用标准。 不要发明自行车,请使用编码标准和符合标准的库,因为这些工具使您可以用更少的精力来构建更好的软件。 对于Web程序员而言,PSR,Java标准,PEP和兼容库有很大帮助。

Second, always test your code. Very often working on a real project with deadlines and all that stress will push you to move too fast. This does not mean you are allowed to deliver shitty untested code. Even if you have no time to write thorough automated tests, this does not mean there can be no tests at all! Use tools like SonarQube to test critical things. And then, when you have one spare minute, spend it on testing and code review.

其次,始终测试您的代码。 很多时候,在一个有期限的真实项目中工作,所有这些压力都会促使您行动太快。 这并不意味着您被允许交付糟糕的未经测试的代码。 即使您没有时间编写全面的自动化测试,也不意味着完全没有测试! 使用SonarQube之类的工具来测试关键的事情。 然后,当您有空闲时间时,将其用于测试和代码审查。

And third, forget about premature optimization. This is absolute evil, and a virus many programmers are prone to. It is always more interesting to add fancy bells and whistles that can «make a difference in the future» rather than digging into real problems that will make the life of an end-user better right now. But you are here to serve the user, and people need the right products not in the future, but now.

第三,忘了过早的优化。 这是绝对邪恶的,并且是许多程序员容易感染的病毒。 增加花哨的铃声和口哨总是更有趣,这可以“改变未来”,而不是挖掘真正的问题,这些问题将使最终用户的生活现在更好。 但是您是在这里为用户服务,人们不是在将来而是现在需要正确的产品。

Think about solving the problem, not adding something cool that people even may not need at all. Once you've got that, your professional growth will go at the right pace and trajectory.

考虑解决问题,不要添加人们甚至根本不需要的东西。 一旦掌握了这一点,您的专业发展就会以正确的步伐和轨迹进行。

翻译自: https://habr.com/en/post/492286/

编程大师访谈录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值