程序员真正的价值是什么?
在科技浪潮澎湃、技术信息扑面而来的今天,一位刚毕业的大学生如果足够勤奋,他可以在两三个月之内掌握一门编程语言,并编写出像模像样的软件,他们的学习速度甚至超过了老一辈的程序员,但是解决问题的能力是无法速成的,只能依靠时间、经验和惨痛的教训历练而成。有时候还需要灵感和运气。
"问:池老师,我是个不爱互动的人,但是您所有的文章我都看了,非常感谢您的引导,我入手了人生第一台MBP。现在问题来了,但是找不到更合适的人解答,只能求助于您了,如果您有时间的话。问题是这样的:我有个32bitunixfile(开启一个服务进程),在Mac上执行时错误提示是:execformaterror,但是在Linux服务器却可以执行,为何?Mac上有可以运行的方案吗?期待您的回复,不胜感激。
答:Linux和OSX是不同的操作系统,可以尝试在OSX里重新编译这个文件。
问:非常感谢!如果没有文件源码是不是就只能认命了?
答:可以在Mac上装Docker,然后对服务进行端口映射就可以了。
答:茅塞顿开。谢池老师。"
以上是我和一位读者的对话,这位小伙子在拿到答案之后像一缕烟尘一样消失无踪,之后再也没有出现过。
在微信上加了很多MacTalk的读者之后,经常会收到一些奇奇怪怪的问题,关于职场、关于选择、关于朋友、关于Mac、关于技术等等,不一而足。但是我能回答的却很少。问题不好没法回答,问题太复杂没法回答,问题领域超出我的认知也没法回答,耗时太长的问题我也没时间回答,实在是惭愧的紧。好在偶尔也能够帮助一些小伙伴解决一些实际问题,心理上略感安慰,比如上面这个问题。
把这段程序员之间的对话翻译一下,大致是这么个故事:
一位读者有一个32位的Unix可执行文件,可以在某种版本的Linux服务器上正常运行,运行这个文件作用就是起个进程,开端口,然后与其他程序进行交互。但是这个文件拿到Mac上完全没办法运行。就在他趴在Mac上愁肠百结万念俱灰的时候,突然想到了「池老师」。不就是这个老家伙把Mac夸的像一朵玫瑰一样,让每个程序员都去采摘么?现在扎手了,你不管谁管?于是他给我发来消息,意思就是管也得管,不管也得管,您看着办。
我拿到问题一看,不难。Linux和OSX虽然师出同门,都是从老前辈Unix那儿毕业的,但是后来毕竟各练各的,在Linux编译好的程序不可能在OSX上用,但是在OSX上重新编译一下可能就没事了。我把这个想法告诉了这位程序员,得到的反馈是:对不起哥,没有源代码!
我被这个冷酷的回复震惊了,立刻意识到刚才的想法并不是最优解决方案,因为在重新编译的过程中,各种包的依赖关系和编译错误足以让你焦头烂额,我随即提供了B计划:在OSX上安装Docker,轻量级的容器Docker可以运行各种版本的Linux,把文件扔到Docker里,然后通过主机和Docker之间的端口映射即可轻松解决这一问题。
虽然这里面会涉及很多技术细节,但是方向是没有问题的,所以这位程序员立刻表示「茅塞顿开」,然后「biu」的一声就在屏幕对面消失了,没有留给我说「不客气」的机会。
这个问题装个Linux虚拟机也可以解决,但是虚拟机过于耗费资源,而且不如Docker灵活,所以不是最佳解决方案。Docker是。
做为一个程序员,我们除了要掌握多门程序语言和多种数据库,了解前端技术、后端技术,通晓网络七层架构,知道TCP/IP三次握手和四次挥手,编写漂亮的代码,设计优美的架构……之外,我们还要解决研发、程序运行和产品上线过程中遇到的各种问题,而且被要求以最小的代价来解决问题……我们容易吗?
除了编程技巧和程序设计能力,解决问题的稳准狠是衡量一个程序员是否优秀的重要因素之一,也是资深技术人员真正的价值所在。在科技浪潮澎湃、技术信息扑面而来的今天,一位刚毕业的大学生如果足够勤奋,他可以在两三个月之内掌握一门编程语言,并编写出像模像样的软件,他们的学习速度甚至超过了我们这些老程序员,但是解决问题的能力是无法速成的,只能依靠时间、经验和惨痛的教训历练而成。有时候还需要灵感和运气。
很多军迷读了大量的军事著作和历史小说,常常羡慕那些名将的风采,并浩叹自己「生不逢时」。但是名将不是那么容易炼成的。历史上叱诧风云的名将凤毛麟角,他们亲自持刀上阵追击敌人,见识战场的惨烈,目睹敌人的尸体,看到战友被杀,知道被刀看中会流血死去,他们冷酷无情,坚如磐石,在全军即将崩溃的时候发现敌人的弱点并进行攻击,在瞬息万变的战场进行决断,在多次失败后从无数士兵的尸体里
- 工控机在IC卡加油工程中的应用(05-13)
- 联网汽车为什么选择Linux开源平台?(07-10)
- 多网络和Linux代理的Android无线远程控制系统(02-02)
- 基于嵌入式Linux的家居监控系统设计(02-22)
- 基于嵌入式Linux系统的导航软件设计思路(03-17)
- 新型嵌入式机器视觉系统的设计研究(04-21)