Chinaunix论坛“Linux/UNIX系统编程,系统程序员成长的基石?”话题讨论的回复
来源:互联网 发布:淘宝靠谱手机店 编辑:程序博客网 时间:2024/04/30 00:18
以下是我参与Chinaunix论坛关于“Linux/UNIX系统编程,系统程序员成长的基石?”(http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4118545&fromuid=28864581)话题讨论的回复,整理出来发到这里,给需要的人做个参考:
(1) 您在Linux/UNIX系统编程行业的经历及经验
我是2006年研究生一年级时开始接触Linux系统编程的,当时是因为我实习的公司用到Linux。后来自己在业余时间看了一些系统编程方面的书,还实现了一个简单的网络协议。通过研究生这两年的经历,算是对Linux系统编程有了一个入门。2008年研究生毕业后,并没有从事Linux/UNIX系统编程的相关工作,而是做手机MMI程序的开发。2010年来到现在这家公司,才又重新开始Linux/UNIX系统编程的工作,目前我主要在Solaris/Linux系统上从事通信网关和服务器程序的开发。通过这些年的经历,我觉得从事Linux/UNIX系统编程最大的益处就是可以获得很多计算机底层系统的知识。举几个例子来说:通常我们都使用gcc编译器编译程序,我们需要了解一些常用编译选项的含义,因为有可能一个编译选项就会导致程序不按你的想法运行;程序不可能没有bug,也许我们需要gdb帮助我们详细了解程序的内存布局,去找到原因;有时程序在一个处理器上运行的好好的,而在另一个上面就不行,此时我们可能又要去了解处理器结构和汇编语言。总之,作为一个底层软件工程师,需要不断地学习计算机最底层最核心的技术,这是件很快乐的事情。
(2) Linux/UNIX系统编程职业生涯的发展探讨
最近几年,随着移动互联网的兴起,前端技术越来越受到大家的重视,而底层技术似乎现在的关注度并不高。我个人觉得Linux/UNIX系统编程知识是程序员的重要基础,无论你从事什么方面的开发,了解系统编程知识和原理,对你是有百益而无一害的,Linux/UNIX系统编程也永远不会被淘汰。所以,我们这些Linux/UNIX系统编程工程师需要做的就是不断学习,提高自己的技术能力。
(3)对于新入门的Linux/UNIX系统编程人员来说,您有什么话对他们说?
我并不是一个资深的工程师,以下是我个人的一点经验和体会,希望给大家一点启示吧:
首先要调整好心态,现在是个浮躁的社会,所以要尽量着让自己静下心来,踏踏实实地去学习技术。
第二就是多实践,经典的技术书籍很多,可是光是阅读,效果并不好。要试着自己写一些代码,这样会加深印象。
第三就是多读好的开源代码。现在github上有很多的优秀代码值得我们学习。拿著名的NoSQL数据库Redis来说,看完Redis的main函数,我们就可以了解到如何创建一个deamon进程了,此外我们也会从中学到如何写个好的高并发服务器程序,如何访问文件系统等等。
以上是我的一孔之见,希望能给大家一点帮助吧。
- Chinaunix论坛“Linux/UNIX系统编程,系统程序员成长的基石?”话题讨论的回复
- 系统程序员的成长
- 系统程序员的成长
- 论坛话题:关于学习目的的讨论
- Android系统的基石
- unix/linux系统编程
- linux/unix系统编程
- 我想讨论的话题
- 系统程序员成长计划-李先静的笔记
- 系统程序员成长计划-组合的威力
- 1 Unix/Linux平台上编程的 基本系统数据类型
- 关于Windows和Unix系统的一点讨论
- 关于回复我不再像以前那样在论坛在QQ群讨论技术的回复
- 逐步成长为专业的linux/unix 程序员
- sharepoint 2010 获取讨论板话题的所有评论回复信息 Get all replies
- Unix/Linux系统网络编程
- Linux系统编程:Unix体系结构
- Linux/Unix系统编程-基本概念
- fckeditor2.6.6 java上传图片到绝对路径的配置
- 百度创始人李彦宏:互联网的下一章
- Hadoop平台研究和搭建
- win7 php开发环境搭建
- android AlertDialog显示错误 Unable to add window token null is not for an application
- Chinaunix论坛“Linux/UNIX系统编程,系统程序员成长的基石?”话题讨论的回复
- 【北京圣思园学习笔记】第08讲:理解面向对象程序设计
- STRUTS2最近量产漏洞分析(2013-6)
- STL的next_permutation与prev_permutation解析
- Linux下logrotate 配置
- linux 时间转换
- 【北京圣思园学习笔记】第09讲:面向对象之封装(Encapsulation)
- 64位oracle数据库32位plsql dev正常工作解决步骤
- 【C++】浙大basic level PAT 代码1001,1002,1003