1.要成为一名专业的码下程序员,从零开始需要怎么一步步来比较好,码下要把最底层的码下先学精通吗?(个人认为)求学长
2.CUnit生成测试程序
3.å¨kali linux ç³»ç»ä¸å¦ä½å®è£
gnuradio
4.CUnit简介
要成为一名专业的程序员,从零开始需要怎么一步步来比较好,码下要把最底层的码下先学精通吗?(个人认为)求学长
前言
你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,码下源码在线解析不如从工作中的码下需求出发)
建议:
不要乱买书,不要乱追新技术新名词,码下基础的码下东西经过很长时间积累而且还会在未来至少年通用。
回顾一下历史,码下看看历史上时间线上技术的码下发展,你才能明白明天会是码下什么样。
一定要动手,码下源码显示框例子不管多么简单,码下建议至少自己手敲一遍看看是码下否理解了里头的细枝末节。
一定要学会思考,思考为什么要这样,而不是那样。还要举一反三地思考。
注:你也许会很奇怪为什么下面的东西很偏Unix/Linux,这是因为我觉得Windows下的编程可能会在未来很没有前途,原因如下:
现在的用户界面几乎被两个东西主宰了,1)Web,2)移动设备iOS或Android。Windows的anyref 源码 scala图形界面不吃香了。
越来越多的企业在用成本低性能高的Linux和各种开源技术来构架其系统,Windows的成本太高了。
微软的东西变得太快了,很不持久,他们完全是在玩弄程序员。详情参见《Windows编程革命史》
所以,我个人认为以后的趋势是前端是Web+移动,后端是Linux+开源。开发这边基本上没Windows什么事。
启蒙入门
1、 学习一门脚本语言,例如Python/Ruby
可以让你摆脱对底层语言的qrspeed插件源码恐惧感,脚本语言可以让你很快开发出能用得上的小程序。实践项目:
处理文本文件,或者csv (关键词 python csv, python open, python sys) 读一个本地文件,逐行处理(例如 word count,或者处理log)
遍历本地文件系统 (sys, os, path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果
跟数据库打交道 (python sqlite),写一个小脚本统计数据库里条目数量
学会用各种print之类简单粗暴的方式进行调试
学会用Google (phrase, domain, use reader to follow tech blogs)
为什么要学脚本语言,因为他们实在是太方便了,很多时候我们需要写点小工具或是脚本来帮我们解决问题,你就会发现正规的编程语言太难用了。
2、 用熟一种程序员的电影解说源码编辑器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,学会如何配置代码补全,外观,外部命令等。
Source Insight (或 ctag)
使用这些东西不是为了Cool,而是这些编辑器在查看、修改代码/配置文章/日志会更快更有效率。
3、 熟悉Unix/Linux Shell和常见的命令行
如果你用windows,至少学会用虚拟机里的linux, vmware player是免费的,装个Ubuntu吧
一定要少用少用图形界面。
学会使用man来查看帮助
文件系统结构和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
学会使用一些文本操作命令 sed/awk/grep/tail/less/more …
学会使用一些管理命令 ps/top/lsof/netstat/kill/tcpdump/iptables/dd…
了解/etc目录下的各种配置文章,学会查看/var/log下的系统日志,以及/proc下的系统运行信息
了解正则表达式,使用正则表达式来查找文件。
对于程序员来说Unix/Linux比Windows简单多了。(参看我四年前CSDN的博文《其实Unix很简单》)学会使用Unix/Linux你会发现图形界面在某些时候实在是太难用了,相当地相当地降低工作效率。
4、 学习Web基础(HTML/CSS/JS) + 服务器端技术 (LAMP)
未来必然是Web的世界,学习WEB基础的最佳网站是W3School。
学习HTML基本语法
学习CSS如何选中HTML元素并应用一些基本样式(关键词:box model)
学会用 Firefox + Firebug 或 chrome 查看你觉得很炫的网页结构,并动态修改。
学习使用Javascript操纵HTML元件。理解DOM和动态网页(Dynamic HTML: The Definitive Reference, 3rd Edition - O'Reilly Media) 网上有免费的章节,足够用了。或参看 DOM 。
学会用 Firefox + Firebug 或 chrome 调试Javascript代码(设置断点,查看变量,性能,控制台等)
在一台机器上配置Apache 或 Nginx
学习PHP,让后台PHP和前台HTML进行数据交互,对服务器相应浏览器请求形成初步认识。实现一个表单提交和反显的功能。
把PHP连接本地或者远程数据库 MySQL(MySQL 和 SQL现学现用够了)
跟完一个名校的网络编程课程(例如:mand line options parsing and test execution)
}
最后,Makefile用于编译和清理:make
INC = -I/usr/local/include/CUnitLIB = -L/usr/local/lib/
all: func.c test_func.c run_test.c
gcc -o test $(INC) $(LIB) -lcunit $^
clean:rm -rf *.o test
将这些文件结合在一起,你就可以通过`make all`编译生成测试程序,然后运行`./test`来执行测试了。在运行时,可以通过命令行选项控制输出模式和错误处理行为。扩展资料
继Junit CppUnit的成功后, c语言环境下也出现了开发源码的白盒测试用例CUnit。CUnit以静态库的形式提供给用户使用,用户编写程序的时候直接链接此静态库就可以了。它提供了一个简单的单元测试框架,并且为常用的数据类型提供了丰富的断言语句支持。å¨kali linux ç³»ç»ä¸å¦ä½å®è£ gnuradio
kali 1.å®è£ gnuradio,é 置软件æ 线çµæç¨
GNURadioå¯è°æ¯å¼æºçæ 线çµç±å¥½è çâåç«åºâãçååå¯è½ä½ å°±çå°äºï¼GNURadioæ¯å¼æºçï¼å¹¶ä¸ä½¿ç¨GPLåè®®å¼æºã
项ç®ä¸»é¡µåä»ç»ï¼ï¼å¯è½è¢«å¢äºï¼èªè¡ç¿»å¢ï¼
/mossmann/hackrf.git cd hackrf/host mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON make sudo make install sudo ldconfig
1
2
3
4
5
6
7
8
git clone --progress /mossmann/hackrf.git
cd hackrf/host
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
ç¼è¯rtlsdr(å¯é)git clone --progress git://git.osmocom.org/rtl-sdr cd rtl-sdr mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON sudo make install sudo ldconfig
1
2
3
4
5
6
7
git clone --progress git://git.osmocom.org/rtl-sdr
cd rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
sudo make install
sudo ldconfig
ç¼è¯gr-osmosdrgit clone --progress git://git.osmocom.org/gr-osmosdr cd gr-osmocom mkdir build cd build cmake ../ make sudo make install sudo ldconfig
1
2
3
4
5
6
7
8
git clone --progress git://git.osmocom.org/gr-osmosdr
cd gr-osmocom
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
ç¼è¯gqrx(å¯é)git clone /csete/gqrx.git cd gqrx mkdir build cd build qmake ../gqrx.pro make sudo make install sudo ldconfig
1
2
3
4
5
6
7
8
git clone /csete/gqrx.git
cd gqrx
mkdir build
cd build
qmake ../gqrx.pro
make
sudo make install
sudo ldconfig
ç¼è¯å®æå
ä½ å¯ä»¥å°è¯ä»¥ä¸å½ä»¤
osmocom_fft : ä¸ä¸ªç®åçHackRFé¢è°±ä»ªosmocom_siggen : ä¸ä¸ªç®åçHackRFä¿¡å·æºgqrx : 类似äºSDR#ç广ææ¥æ¶å¨CUnit简介
CUnit, 作为一款C语言的单元测试框架,它的出现是对Junit和CppUnit在C++环境成功应用的延续。它以静态库的形式为C语言开发者提供服务,使用起来非常方便,只需要在编写程序时直接链接这个库即可。CUnit的核心是它设计的简单但功能强大的单元测试框架,它特别注重对常用数据类型的支持,通过丰富的断言语句,帮助开发者有效地进行代码的测试和验证。扩展资料
继Junit CppUnit的成功后, c语言环境下也出现了开发源码的白盒测试用例CUnit。CUnit以静态库的形式提供给用户使用,用户编写程序的时候直接链接此静态库就可以了。它提供了一个简单的单元测试框架,并且为常用的数据类型提供了丰富的断言语句支持。