我的工业发展历程,一年

Who am I?

大家好! 欢迎来到我的第一篇文章。

我叫杰克(Jake),我从事行业开发工作已有一年多的时间(从2017年12月11日开始)。 我写这篇文章是为了:

  1. 概述我的背景以及导致我选择发展的原因。总结我今年取得的成就。根据我到目前为止的经验,为新开发者提供有关此过程的提示。

我们走吧!

Background

在我的工业发展之旅开始之前,我首先去大学学习数学。 这是我自豪地举起(阅读:与合影) 我的项目:

Okay, okay, perhaps this is posing...

During my final year of my degree, I embarked on a project with Melina Freitag, with a single overarching goal: to understand and implement a simple Recommender System. If one is interested in the details, then I have provided a link to my paper here. (Fun side note: at this point in time, I did not realise that this was technically machine learning!)

在我学位课程的最后一年中学习的所有模块中,我最喜欢做这个项目。 我喜欢研究,喜欢数学,喜欢程式设计. At the end of the paper is my first attempt at solving a "proper problem" using 程式设计 (so be warned, it isn't the nicest thing to look at, heavily referencing the previously mentioned paper to understand all of the variable names).

这激发了我的兴趣,不久我就成为了金融服务领域的后端Java开发人员。

What have I achieved this year?

Initial progress

Prior to landing the job, I started progressing through this massive open online course (MOOC) to understand the syntax of Java (as this was light years away from MATLAB)!

但是,从MATLAB到Java的最初过渡从一开始就很痛苦。

  • Java,这是什么意思?编译“?Java,这是什么意思?串? 一定一个=“单词”有招吗?Java,您的意思是不兼容的类型?

"Oh, there's also lots of Java-y and non-Java-y things to learn too!"

  • 编写“干净的代码”。面向对象程序设计原理(迈耶,干,固体)敏捷SDLC方法论(Scrum)依赖管理(马文)版本控制(吉特,SVN)CI(竹)

...真是压倒性的。

Consistency is key

在这些时候,人们会感到不知所措,开始感到沮丧。 我知道我经历了这个过程。 但是,通过一贯的奉献精神,我现在认为自己是一般胜任。 我学到了很多东西,而且每天都在享受这一学科。 我使用该术语的原因一般胜任(请谨慎选择我的单词!)是:

  • 我相信没有单人可以学习每一个一件事但我相信being 纪律一致一件事情,并给予e没有ugh time to a一件事one can 学习它。

为了详细说明这一点,我现在认为,只要有足够的时间讨论某个特定区域,我就可以继续学习该区域或相关区域。

Tips based on my experiences

Tip No. 1 - Relax, take a deep breath

考虑到所有事情,我认为这是最重要的事情。

  • 很容易被广阔的发展世界所淹没。容易陷入危险,全神贯注于应该“简单”解决的问题。很容易感觉到你需要学习这个。

退后一步。 深吸一口气。 放松。 一切都会好起来的。 快速散步或喝杯茶! 您也许可以立即解决当前的问题。 那是好的。

Tip No. 2 - Learn to be comfortable with unstructured learning

对我来说,这是一个艰难的过渡。 不过,我确实很幸运,因为出去参加大学的最后一个项目的研究有助于为这种学习方式做准备。

从数学的背景来看,从结构的角度来看,大学是相当简单的。 每个讲授的概念都以简洁,线性的方式建立在先前讲授的概念的基础上。

以我的经验,软件开发是相反的。 好像您必须开放思想以接收来自各个方向的信息,然后在以后建立连接。

这方面的主要技巧是,无论您是否深入了解先决条件,都必须学习自己认为有趣或很酷的东西。 如果您认为有趣的事情,那么您将全力以赴学习先决条件(并且您已经免费拥有一些“信息连接”!)。

给它时间。 连接将发生(并且,当它们开始发生时,它们将越来越频繁地发生)。

Tip No. 3 - You will (almost) never write perfect code on the first attempt

在我开始熟悉实施和设计的基础知识之后,我最终想到了作家街区。

遇到问题时,我会考虑该解决方案的特定实现。 再多考虑一下,我会意识到我不喜欢这部分设计,所以我重新设计。 然后,我会发现它的更多问题,然后重新设计,然后……嗯,您明白了。 结果,我大约要花一个小时无需编写任何代码。

相反,当遇到问题时,您应该完全理解什么您想要解决方案,而不是怎么样去做吧。

当你了解什么解决方案应该做到的就去吧! 开始设计,开始实施,准备好构建基块。 然后,如果您在进行过程中不喜欢设计或实现的某些部分,只是重构!

这有两个主要好处:

  • 在开发过程中获得更多实践。了解如何在代码成形时认真思考代码。 然后,您开始积极考虑代码的形成方式,这反过来又使您可以发现代码库其他部分中的机会,以实现更好的设计和更好的实现!

我发现软件开发真正美丽的一件事是它的生命周期。看到解决方案的发展。 以上方法产生了这种美。

Tip No. 4 - Seek a mentor

在我目前的职位上,我非常荣幸地拥有一位出色的导师。 一个真正好的导师能够:

  • 了解您的思考过程。给刚刚够可以提供帮助的信息(根据您当前的理解)。提出建设性的,探索性的问题。

如果您能够找到导师,那么我强烈建议您这样做。 它不一定需要在您的同一团队甚至同一公司内! 我发现拥有另一双经验丰富的眼睛来查看您的解决方案有助于使它们变得更好。 因此,您的解决方案的质量得以提高,整体开发实践的质量也得以提高。

Tip No. 5 - Understanding the domain helps to design better solutions

您不只是代码猴子。 为此,了解您的领域(在我的例子中是金融服务行业)可以使您真正了解最终用户的需求。 通过扩展,您将提供更好的解决方案,从而使最终用户更加满意!

在这方面,请尝试了解基于域的应用程序要实现的目标。

Final comments

为了了解我的学习方式,我做了以下工作:

  • As previously stated, I used this MOOC to begin learning Java.
  • I then used Pluralsight to start to learn more about Java and OOP practices. (Note: I am not affiliated in any way with Pluralsight, but I believe it is a fantastic platform for learning).
  • In terms of literature, I have read through the Clean Code series of books, written by Uncle Bob.
  • I am currently reading through Effective Java.

from: https://dev.to//jakeallan/my-industrial-development-journey-one-year-on-361o

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值