大家好,我是码农先森。

树挪死,人挪活,这个需求我做不了,换个人吧。大家都有过这种经历吧,放在编程语言身上就是 PHP 不行了,赶紧转 Go 语言吧。那转 Go 语言就真的行了?那可不见得,我个人认为这只是一种缓解焦虑转移注意力的方式罢了。有些朋友想尝试转 Go 语言或者正在路上了,在这个过程当中都会遇到思维转换的困境,这种困境往往就是编程习惯的路径依赖,总是会以 PHP 的编程思维去学习 Go 语言,这样的学习方式也造成了很多人在 Go 语言的学习道路戛然而止了。

困境

困境一词在大家的编程生涯中应该不止一次出现了吧,每天解决无数的 Bug 也就相当于无数次从困境的泥潭中脱出。那么这一次我想说的是 PHP 程序员转型 Go 语言的困境,结合我自己的认知我个人认为有这么几点。

首先在这个浮躁的社会面前,我们每天都面临着各种各样的问题,尤其是很多人总是唱衰 PHP 不行了,在这种情绪的传播下,有些人开始像无头苍蝇一样寻求转型的突破口,一会看看 Java 一会又看看 Go,结果呢一个也不能学有所成,这种急迫的转型心态往往都是以失败而告终。

其次传统的编程思维路径依赖,这个观点在刚开始也有提到,作为世界上最好的语言 PHP 上手简单编写效率高,实现的效果所见即所得,我们长期在一种编程模式下形成的习惯,以人性的角度来分析就是一旦形成相应的习惯便很难改变,我经常看到有些 PHP 程序员写的 Go 代码无时无刻都充满着一股 PHP 味,这便是路径依赖带来的结果。

最后据我了解大部分的 PHP 程序员都是半路杀出的程咬金基础知识薄弱,通过炼就了某某七天入门、三十天精通 PHP 的宝典教程,而误入了 PHP 的编程大家庭,在 PHP 的编程世界里自由的翱翔如鱼得水,成为了 PHP 界的一名 CURD 靓仔,然后满怀自信的去学习 Go 语言,结果由于基本功不扎实遇到 Go 语言中的指针、协程、通道、切片等特性就一脸懵逼,最终落荒而逃。

建议

既然有了困境,那么还是得想方法解决,才能走在转型 Go 语言的正确道路上。鲁迅先生曾说过「世界上本就没有路,走的人多了,自然就有路了」。

我们可以沿着别人走过的路走,也就是说我们可以寻找一名已经学有所成的 Go 语言小伙伴,跟随着他的脚步脚踏实地的学习,一步一步的模仿,模仿也是最好的学习方式之一。我们工作在一个内卷的职场,每天都浮躁于心,因此需要有一个确定的学习目标,不要东想一个西想一个,今天这个好学这个,明天那个好又跑去学那个,其实保持住一个稳定的目标和良好的心态,就已经成功了一大半,别像某些演员拍电视剧,永远都活不过第一集。

对于那些半路出家的 CURD 靓仔们,虽然你们现在过得潇洒自在,但还是建议多学习下计算机基础知识,比如操作系统、网络协议等,当你们那天面临着内部转型 Go 语言也能有所应对,因为我也听很多的朋友说自己公司都在尝试往 Go 语言方向转型,这也是一种趋势,雷军也曾说过「站在风口上的猪都能飞」,因此我们要顺势而为积极应对。

结语

在转型的困境下我们不应惧怕,但也不能盲目大意。学习的道路总是艰难而漫长的,因为学习本身就是逆人性的成长,要攻克人性并非易事。最后希望大家的转型之路能一切顺利,条条大路通罗马,每个人都是与众不同的个体,都有自己独特的学习之路,愿大家都能走在正确的道路上,一路长虹!本次分享内容就到这里了,希望对大家能有所启发。

感谢阅读,个人观点仅供参考,欢迎在评论区发表不同观点。


欢迎关注、分享、点赞、收藏、在看,我是微信公众号「码农先森」作者。

为什么大部分的 PHP 程序员转不了 Go 语言?的更多相关文章

  1. 能让你成为更优秀程序员的10个C语言资源

    能让你成为更优秀程序员的10个C语言资源 本文由 伯乐在线 - archychu 翻译自 mycplus.欢迎加入 技术翻译小组.转载请参见文章末尾处的要求. 一些人觉得编程无聊,一些人觉得它很好玩. ...

  2. C语言过时了?为什么还要推荐每一位程序员都来学一下C语言?

    互联网蓬勃发展的时代,有一类人做出了巨大的贡献,这一群人被大家称之为程序员,怎样才能成为一名优秀的程序员呢,为什么每一个程序员都需要学习C语言呢? 就让我来跟大家分享分享:   在学习C/C++或者想 ...

  3. 2017年 Java 程序员,风光背后的危机

    不得不承认,经历过行业的飞速发展期,互联网的整体发展趋于平稳.为什么这么说?为什么要放在 Java 程序员的盘点下说? 的确,对于进可攻前端,后可守后端大本营的 Java 程序员而言,虽然供应逐年上涨 ...

  4. 996.icu,不加班的程序员有前途吗?

    一.有没有不加班的程序员? 有,我就是. 我目前工作与一家500强外企(欧美),职称为高级软件开发专家. 我在这家公司(500强外企)已经服务了10年,所有加班次数合起来不超过10天,最近3年则一次都 ...

  5. Java程序员的成长之路

    阅读本文大概需要 8.2 分钟. tips:虽然题目是写的Java程序员,但对其他语言的开发来说也会有借鉴作用. 本篇介绍的是大体思路,以及每个节点所需要学习的书籍内容,如果大家对详细的技术点有需要, ...

  6. PHP程序员的能力水平层次(二)

    PHPer的定义:PHPer是以PHP程序编写为主要工作,其他方面略有涉及的一种职业人士,大家所说的程序猿. 对PHPer的等级划分 PHP 爱好者 (半个PHPer) PHP 初学者 (PHP Be ...

  7. UNIX/Linux C 程序员需要掌握的七种武器

    我是一名普通的软件工程师,不是什么技术大牛.这篇文章所提到的"七种武器"只是我这些年工作经验的一点体会和感悟,如果有错误的地方,还请大家指正. (一)C语言 作为一名C程序员,熟练 ...

  8. C程序员必读的 3 本书

    C程序员必读的 3 本书 原创: Martin 老师  公众号:零基础零障碍学习C语言 勿用质疑,今天来看这篇文章的朋友都是准备学好C语言的朋友,大家想学好C语言的迫切性,就好比Martin老师等着元 ...

  9. C语言程序员必读的5本书

    本文由 伯乐在线 - programmer_lin 翻译自 fromdev.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. 你正计划着通过看书来学习C语言吗?“书籍是人类最忠诚的朋友“.海明威一定 ...

  10. .Net程序员玩转Android系列之一~Java快速入门

    前言 前段时间受公司业务发展需要,探索性进入Android开发领域.一切从零开始,java基础,Java进阶,Android框架学习,Eclipse熟悉,最终到第一个即时通讯App完成,历经一个月的时 ...

随机推荐

  1. Lecture3

    Smiling & Weeping ---- 蝴蝶在双翼里藏匿夏的脉络 妄图在绿意中品鉴隆冬 第三章 Git分支管理 3.1 分支的简介 Git最重要的运用场景是多人协同开发,但是如何能保证每 ...

  2. OB_MYSQL UPDATE 优化案例

    在工单系统上看到有一条SQL问题还没解决,直接联系这位同学看看是否需要帮忙. 慢SQL: UPDATE A SET CORPORATION_NAME = ( SELECT DISTINCT CORPO ...

  3. Python str 转 b’二进制串

    用raw_unique_escape来编码无义意的二进制串 bytes(strtext, encoding='raw_unique_escape')

  4. Spark Structured Streaming(一)基础

    1. 流处理的场景 我们在定义流处理时,会认为它处理的是对无止境的数据集的增量处理.不过对于这个定义来说,很难去与一些实际场景关联起来.在我们讨论流处理的优点与缺点时,先介绍一下流处理的常用场景. 通 ...

  5. Freertos学习:在Posix环境仿真FreeRTOS

    --- title: rtos-freertos-在Posix环境仿真FreeRTOS date: 2020-06-11 16:22:34 categories: tags: - freertos - ...

  6. React中的Ref

    React中ref是一个对象,它有一个current属性,可以对这个属性进行操作,用于获取DOM元素和保存变化的值.什么是保存变化的值?就是在组件中,你想保存与组件渲染无关的值,就是JSX中用不到的或 ...

  7. 使用docker搭建ELK分式日志同步方案

    ELK作为业界最常用日志同步方案,我们今天尝试一下使用docker快速搭建一套ELK方案.ELK使用国内加速源拉取的镜像比较旧,有条件的朋友可以拉取官网的源.elasticsearch作为日志储存库( ...

  8. Nuxt框架中内置组件详解及使用指南(二)

    title: Nuxt框架中内置组件详解及使用指南(二) date: 2024/7/7 updated: 2024/7/7 author: cmdragon excerpt: 摘要:"本文详 ...

  9. 1. 简述一下你对 HTML 语义化的理解?

    用正确的标签做正确的事情.1.HTML 语义化让页面的内容结构化,结构更清晰,便于对浏览器.搜索引擎解析; 2.即使在没有样式 CSS 的情况下也能以一种文档格式显示,并且是容易阅读的; 3.搜索引擎 ...

  10. go语言的基础语法

    字符串数组 package main import ( "fmt" ) func main() { var str string str = "hello world&q ...