sed常用替换小技巧记录

Something 发表了文章 • 0 个评论 • 111 次浏览 • 2020-08-20 14:48 • 来自相关话题

1. 去掉行首空格
sed 's/^[ \t]*//g'2. 去掉行末空格
sed 's/[ \t]*$//g'3. 去掉所有空格
sed s/[[:space:]]//g4. 替换符号
sed "s/^\(.*\)$/'\1'/"
sed "s/^\(.*\)$/aa =>\1/" 查看全部
1. 去掉行首空格
sed 's/^[ \t]*//g'
2. 去掉行末空格
sed 's/[ \t]*$//g'
3. 去掉所有空格
sed s/[[:space:]]//g
4. 替换符号
sed "s/^\(.*\)$/'\1'/" 
sed "s/^\(.*\)$/aa =>\1/"

一些常见错误技术问题汇总

Geek小A 发表了文章 • 0 个评论 • 253 次浏览 • 2020-07-05 01:48 • 来自相关话题

Q: 启动apache报错 [warn] module php5_module is already loaded, skipping

一般出现这种问题有两种情况:
1.在apache安装目录conf下httpd.conf里可能重复了一行LoadModule php5_module modules/libphp5.so,删除重复的行就行。
 
2.或者在其他的conf文件中加载load了,如下yum安装的httpd,conf.d/php.conf里
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>

Q: centos 6.2 更新报错解决 yum you could try using skip broken to work around the problem

 
# yum update
Loaded plugins: aliases, changelog, downloadonly, kabi, presto, refresh-
: packagekit, security, tmprepo, verify, versionlock
Loading support for Red Hat kernel ABI
adobe-linux-x86_64 | 951 B 00:00
google-chrome | 951 B 00:00 ...
sl | 3.2 kB 00:00
sl-security | 1.9 kB 00:00
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package python-qpid.noarch 0:0.12-1.el6 will be updated
---> Package python-qpid.noarch 0:0.14-11.el6_3 will be an update
---> Package python-qpid-qmf.x86_64 0:0.12-6.el6 will be updated
---> Package python-qpid-qmf.x86_64 0:0.14-14.el6_3 will be an update
---> Package qpid-cpp-client.x86_64 0:0.12-6.el6 will be updated
--> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-agent-lib-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-network-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-sysconfig-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-service-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-host-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-network-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-host-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-sysconfig-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: libvirt-qmf-0.3.0-4.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-agent-lib-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-service-0.4.4-11.el6.x86_64
---> Package qpid-cpp-client.x86_64 0:0.14-22.el6_3 will be an update
---> Package qpid-cpp-client-ssl.x86_64 0:0.12-6.el6 will be updated
---> Package qpid-cpp-client-ssl.x86_64 0:0.14-22.el6_3 will be an update
---> Package qpid-cpp-server.x86_64 0:0.12-6.el6 will be updated
---> Package qpid-cpp-server.x86_64 0:0.14-22.el6_3 will be an update
---> Package qpid-cpp-server-ssl.x86_64 0:0.12-6.el6 will be updated
---> Package qpid-cpp-server-ssl.x86_64 0:0.14-22.el6_3 will be an update
---> Package qpid-qmf.x86_64 0:0.12-6.el6 will be updated
---> Package qpid-qmf.x86_64 0:0.14-14.el6_3 will be an update
---> Package qpid-tools.noarch 0:0.12-2.el6 will be updated
---> Package qpid-tools.noarch 0:0.14-6.el6_3 will be an update
---> Package ruby-qpid-qmf.x86_64 0:0.12-6.el6 will be updated
---> Package ruby-qpid-qmf.x86_64 0:0.14-14.el6_3 will be an update
--> Finished Dependency Resolution
Error: Package: matahari-host-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidclient.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidclient.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-sysconfig-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidclient.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidclient.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-service-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-network-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidclient.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidclient.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-sysconfig-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-host-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: libvirt-qmf-0.3.0-4.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-agent-lib-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-network-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-agent-lib-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidclient.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidclient.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-service-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidclient.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidclient.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
You could try using --skip-broken to work around the problem
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
libvpx-1.0.0-1.el6.x86_64 is a duplicate with libvpx-0.9.0-8.el6_0.x86_64上述更新错误,解决方法如下:
yum remove matahari*执行完后,然后执行yun update 更新,这样应该就可以了。

Q: Cannot load /…/libphp5.so into server: /…/libphp5.so: undefined symbol: _efree

此错误是由于重装php时,没有关闭apache。解决方法:调转到php安装目录,执行“make clean”,然后从新安装php,记得安装之前关闭apache。

Q: apache启动报错(98)Address already in use: make_sock: could not bind to address :80

端口占用情况:
#netstat -lnp|grep 80
#ps 端口号为80的进程
#kill -9 端口号为80的进程(可能进程不止一个)

Q: 从源码安装apache2,遇到错误:cannot install `libaprutil-1.la'

这是由于configure过一次,没有清理干净,需要清理。可以删除掉源码目录,重新解压源码,重新安装,或者make clean. 查看全部


Q: 启动apache报错 [warn] module php5_module is already loaded, skipping


一般出现这种问题有两种情况:
1.在apache安装目录conf下httpd.conf里可能重复了一行LoadModule php5_module modules/libphp5.so,删除重复的行就行。
 
2.或者在其他的conf文件中加载load了,如下yum安装的httpd,conf.d/php.conf里
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>


Q: centos 6.2 更新报错解决 yum you could try using skip broken to work around the problem


 
# yum update
Loaded plugins: aliases, changelog, downloadonly, kabi, presto, refresh-
: packagekit, security, tmprepo, verify, versionlock
Loading support for Red Hat kernel ABI
adobe-linux-x86_64 | 951 B 00:00
google-chrome | 951 B 00:00 ...
sl | 3.2 kB 00:00
sl-security | 1.9 kB 00:00
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package python-qpid.noarch 0:0.12-1.el6 will be updated
---> Package python-qpid.noarch 0:0.14-11.el6_3 will be an update
---> Package python-qpid-qmf.x86_64 0:0.12-6.el6 will be updated
---> Package python-qpid-qmf.x86_64 0:0.14-14.el6_3 will be an update
---> Package qpid-cpp-client.x86_64 0:0.12-6.el6 will be updated
--> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-agent-lib-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-network-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-sysconfig-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-service-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidclient.so.5()(64bit) for package: matahari-host-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-network-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-host-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-sysconfig-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: libvirt-qmf-0.3.0-4.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-agent-lib-0.4.4-11.el6.x86_64
--> Processing Dependency: libqpidcommon.so.5()(64bit) for package: matahari-service-0.4.4-11.el6.x86_64
---> Package qpid-cpp-client.x86_64 0:0.14-22.el6_3 will be an update
---> Package qpid-cpp-client-ssl.x86_64 0:0.12-6.el6 will be updated
---> Package qpid-cpp-client-ssl.x86_64 0:0.14-22.el6_3 will be an update
---> Package qpid-cpp-server.x86_64 0:0.12-6.el6 will be updated
---> Package qpid-cpp-server.x86_64 0:0.14-22.el6_3 will be an update
---> Package qpid-cpp-server-ssl.x86_64 0:0.12-6.el6 will be updated
---> Package qpid-cpp-server-ssl.x86_64 0:0.14-22.el6_3 will be an update
---> Package qpid-qmf.x86_64 0:0.12-6.el6 will be updated
---> Package qpid-qmf.x86_64 0:0.14-14.el6_3 will be an update
---> Package qpid-tools.noarch 0:0.12-2.el6 will be updated
---> Package qpid-tools.noarch 0:0.14-6.el6_3 will be an update
---> Package ruby-qpid-qmf.x86_64 0:0.12-6.el6 will be updated
---> Package ruby-qpid-qmf.x86_64 0:0.14-14.el6_3 will be an update
--> Finished Dependency Resolution
Error: Package: matahari-host-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidclient.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidclient.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-sysconfig-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidclient.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidclient.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-service-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-network-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidclient.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidclient.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-sysconfig-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-host-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: libvirt-qmf-0.3.0-4.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-agent-lib-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-network-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidcommon.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidcommon.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-agent-lib-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidclient.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidclient.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
Error: Package: matahari-service-0.4.4-11.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
Requires: libqpidclient.so.5()(64bit)
Removing: qpid-cpp-client-0.12-6.el6.x86_64 (@anaconda-ScientificLinux-201202061444.x86_64)
libqpidclient.so.5()(64bit)
Updated By: qpid-cpp-client-0.14-22.el6_3.x86_64 (sl-security)
Not found
You could try using --skip-broken to work around the problem
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
libvpx-1.0.0-1.el6.x86_64 is a duplicate with libvpx-0.9.0-8.el6_0.x86_64
上述更新错误,解决方法如下:
yum remove matahari*执行完后,然后执行yun update 更新,这样应该就可以了。


Q: Cannot load /…/libphp5.so into server: /…/libphp5.so: undefined symbol: _efree


此错误是由于重装php时,没有关闭apache。解决方法:调转到php安装目录,执行“make clean”,然后从新安装php,记得安装之前关闭apache。


Q: apache启动报错(98)Address already in use: make_sock: could not bind to address :80


端口占用情况:
#netstat -lnp|grep 80
#ps 端口号为80的进程
#kill -9 端口号为80的进程(可能进程不止一个)


Q: 从源码安装apache2,遇到错误:cannot install `libaprutil-1.la'


这是由于configure过一次,没有清理干净,需要清理。可以删除掉源码目录,重新解压源码,重新安装,或者make clean.

golang静态编译

Ansible 发表了文章 • 0 个评论 • 280 次浏览 • 2020-04-30 09:43 • 来自相关话题

golang 的编译(不涉及 cgo 编译的前提下)默认使用了静态编译,不依赖任何动态链接库。

这样可以任意部署到各种运行环境,不用担心依赖库的版本问题。只是体积大一点而已,存储时占用了一点磁盘,运行时,多占用了一点内存。早期动态链接库的产生,是因为早期的系统的内存资源十分宝贵,由于内存紧张的问题在早期的系统中显得更加突出,因此人们首先想到的是要解决内存使用效率不高这一问题,于是便提出了动态装入的思想。也就产生了动态链接库。在现在的计算机里,操作系统的硬盘内存更大了,尤其是服务器,32G、64G 的内存都是最基本的。可以不用为了节省几百 KB 或者1M,几 M 的内存而大大费周折了。而 golang 就采用这种做法,可以避免各种 so 动态链接库依赖的问题,这点是非常值得称赞的。
 
显示指定静态编译方法
在Docker化的今天, 我们经常需要静态编译一个Go程序,以便方便放在Docker容器中。 即使你没有引用其它的第三方包,只是在程序中使用了标准库net,你也会发现你编译后的程序依赖glic,这时候你需要glibc-static库,并且静态连接。

不同的Go版本下静态编译方式还有点不同,在go 1.10下, 下面的方式会尽可能做到静态编译:
CGO_ENABLED=0 go build -a -ldflags '-extldflags "-static"' .
原文: http://suo.im/6d3eun   查看全部
golang 的编译(不涉及 cgo 编译的前提下)默认使用了静态编译,不依赖任何动态链接库。

这样可以任意部署到各种运行环境,不用担心依赖库的版本问题。只是体积大一点而已,存储时占用了一点磁盘,运行时,多占用了一点内存。早期动态链接库的产生,是因为早期的系统的内存资源十分宝贵,由于内存紧张的问题在早期的系统中显得更加突出,因此人们首先想到的是要解决内存使用效率不高这一问题,于是便提出了动态装入的思想。也就产生了动态链接库。在现在的计算机里,操作系统的硬盘内存更大了,尤其是服务器,32G、64G 的内存都是最基本的。可以不用为了节省几百 KB 或者1M,几 M 的内存而大大费周折了。而 golang 就采用这种做法,可以避免各种 so 动态链接库依赖的问题,这点是非常值得称赞的。
 
显示指定静态编译方法
在Docker化的今天, 我们经常需要静态编译一个Go程序,以便方便放在Docker容器中。 即使你没有引用其它的第三方包,只是在程序中使用了标准库net,你也会发现你编译后的程序依赖glic,这时候你需要glibc-static库,并且静态连接。

不同的Go版本下静态编译方式还有点不同,在go 1.10下, 下面的方式会尽可能做到静态编译:
CGO_ENABLED=0 go build -a -ldflags '-extldflags "-static"' .

原文: http://suo.im/6d3eun  

告诉你真实的软件开发Bug产生过程

OS小编 发表了文章 • 0 个评论 • 335 次浏览 • 2020-04-25 22:55 • 来自相关话题

领导:修个房子。

程序员:好的,马上开始打地基!

领导:你看那隔壁那木房子就没有打地基,不要在小事上浪费时间,一个月水平面上面什么都看不到,你kpi不要了?

这是敏捷开发。


一层房子修好。

领导:我觉得两层楼的视野好,再加一层。

程序员:可是我们没有地基,重新打地基要时间……

领导:你一楼都修好了,照着再修个一模一样二楼很难?还要很多时间?

这是高速版本迭代。


二楼修好。

领导:天天走路累死了,你再修个电梯。

程序员:可是……

领导:没什么可是的,地基不稳?就在房子边上搭个电梯就行了嘛,不稳拿根木棍撑一下,这都不懂?

这是版本优化。


电梯修好。

领导:我觉得顶楼再加个游泳池就好了。

程序员:这个结构行业翘楚的房子也不支持呀!

领导:那不正显得我们牛逼么?修快点,夏天要来了。

这是快速功能追加。


游泳池修好,看着摇摇欲坠的房子,程序员跑路了,领导找来新人继续。

领导:我觉得游泳池水不够满,你加点的,一楼光线不好你在墙上打个窗户。

新人:好的,没问题领导,马上加一桶水,马上砸墙

这是打补丁。


房子塌了,电梯倒了,游泳池垮了……

领导:真是个废物,就让他加桶水,居然能把房子弄倒了,你说这是多没用?

新人:我真的就加了桶水,我怎么知道为什么。

这是软件莫名崩溃。
 

来源: 知乎
作者:哒柏
链接:http://suo.im/6kaAEi 查看全部
领导:修个房子。

程序员:好的,马上开始打地基!

领导:你看那隔壁那木房子就没有打地基,不要在小事上浪费时间,一个月水平面上面什么都看不到,你kpi不要了?

这是敏捷开发


一层房子修好。

领导:我觉得两层楼的视野好,再加一层。

程序员:可是我们没有地基,重新打地基要时间……

领导:你一楼都修好了,照着再修个一模一样二楼很难?还要很多时间?

这是高速版本迭代


二楼修好。

领导:天天走路累死了,你再修个电梯。

程序员:可是……

领导:没什么可是的,地基不稳?就在房子边上搭个电梯就行了嘛,不稳拿根木棍撑一下,这都不懂?

这是版本优化


电梯修好。

领导:我觉得顶楼再加个游泳池就好了。

程序员:这个结构行业翘楚的房子也不支持呀!

领导:那不正显得我们牛逼么?修快点,夏天要来了。

这是快速功能追加


游泳池修好,看着摇摇欲坠的房子,程序员跑路了,领导找来新人继续。

领导:我觉得游泳池水不够满,你加点的,一楼光线不好你在墙上打个窗户。

新人:好的,没问题领导,马上加一桶水,马上砸墙

这是打补丁


房子塌了,电梯倒了,游泳池垮了……

领导:真是个废物,就让他加桶水,居然能把房子弄倒了,你说这是多没用?

新人:我真的就加了桶水,我怎么知道为什么。

这是软件莫名崩溃
 


来源: 知乎
作者:哒柏
链接:http://suo.im/6kaAEi


AIOps根因分析最佳实践

OS小编 发表了文章 • 0 个评论 • 549 次浏览 • 2020-04-14 13:42 • 来自相关话题

随着基础架构和软件环境变得越来越复杂,检测性能或可用性问题的根因变得越来越具有挑战性。幸运的是,迎接挑战的是一类新的工具和一种新的策略:AIOps。

什么是根因分析?
在IT中,根因分析是确定硬件或软件问题的根本问题原因是什么的过程。

根因分析很重要,因为在许多情况下,有多个可能的问题原因,而且从问题本身来看,原因并不明显。例如,如果应用程序开始响应缓慢,则仅凭这些信息就很难知道问题的原因是否是应用程序本身编写的糟糕的代码,还是托管应用程序的操作系统存在的问题,还是文件系统存在问题。应用程序正在使用,应用程序所依赖的网络或存储基础结构出现问题或其他原因。也可能有多个潜在问题在起作用。

为什么当前根因分析尤其重要
从前,根因分析相对简单,因为IT团队需要管理的硬件和软件层较少。物理基础架构和硬件环境之间也几乎没有抽象。因此,如果监控软件检测到磁盘性能问题,则可以相对确定磁盘本身或用于格式化磁盘的文件系统是根本问题。

但是,今天,我们依赖高度动态的多层软件定义环境。映射这些环境中所有组件之间的关系非常困难,尤其是因为配置不断变化。很难解释在环境的一层中表现出来的问题与其他层之间的关系。

如今,存储性能问题的根因可能不一定是物理磁盘或本地文件系统,还可能是使存储可供远程系统使用的网络或分布式文件系统。也可能是提供存储的虚拟化网络。

充分利用AIOps进行根因分析
部分原因是由于现代环境中根因分析的困难, AIOps变得如此重要。通过使用机器学习自动映射和解释复杂的环境和因果关系,AIOps可以帮助IT团队比仅依靠手动分析更快地找到性能或可用性问题的根源。简单地使用AIOps工具将大大提高您的根本原因分析能力。

就是说,您可以采取一些步骤来确保充分利用AIOps辅助的根本原因分析。它们包括以下内容。

1. 记住,配置快速变更,根因也会随之变更

在瞬息万变的现代环境中进行根因分析的棘手事情之一是,一次构成根本问题的原因可能在下一时刻改变。应用程序性能缓慢的根本原因可能是网络拥塞,但随着网络流量模式和存储系统负载的变化,下一阶段将变为IO瓶颈。

AIOps工具可以帮助解决这些变化,但是对于人类工程师而言,重要的是要记住根因是可以改变的。不要认为核心问题是一成不变的。

2. 考虑自动响应

AIOps的另一个关键功能是它使软件工具可以采取自动措施来解决问题。尽管并不是在每种情况下都自动响应是正确的解决方案(例如,您可能希望让人工工程师在进行重大变更之前先进行审查),但对于更简单的问题的自动响应可以有效地帮助确保您不仅识别根因可以快速解决,也可以在最终给用户造成严重问题之前解决它们。

3. 不要假设只有一个根因

如上所述,软件或硬件问题的原因可能是多个问题。停止响应的应用程序可能会这样做,因为代码编写得不好,无法使应用程序从意外的网络错误中恢复;在这种情况下,应用程序代码和网络问题都是此问题的根因。

这里的关键要点是,一方面,在执行根因分析时,您应努力将辅助问题与根因区分开,但您不应排除可能存在两个或多个核心潜在问题的可能性。

4. 力求与环境无关的根本原因分析

理想情况下,根因分析工作流程应对任何类型的基础架构或环境均有效。如果您依赖仅支持特定类型的环境或基础架构的监控或分析工具(例如来自特定云供应商的工具或仅针对一种操作系统设计的工具),则不会发生这种情况。

此处的教训是,您应该寻找AIOps工具 ,这些工具可以协助对任何类型的基础结构进行根本原因分析。
 
英文原文:http://suo.im/64aCgc  查看全部
随着基础架构和软件环境变得越来越复杂,检测性能或可用性问题的根因变得越来越具有挑战性。幸运的是,迎接挑战的是一类新的工具和一种新的策略:AIOps。

什么是根因分析?
在IT中,根因分析是确定硬件或软件问题的根本问题原因是什么的过程。

根因分析很重要,因为在许多情况下,有多个可能的问题原因,而且从问题本身来看,原因并不明显。例如,如果应用程序开始响应缓慢,则仅凭这些信息就很难知道问题的原因是否是应用程序本身编写的糟糕的代码,还是托管应用程序的操作系统存在的问题,还是文件系统存在问题。应用程序正在使用,应用程序所依赖的网络或存储基础结构出现问题或其他原因。也可能有多个潜在问题在起作用。

为什么当前根因分析尤其重要
从前,根因分析相对简单,因为IT团队需要管理的硬件和软件层较少。物理基础架构和硬件环境之间也几乎没有抽象。因此,如果监控软件检测到磁盘性能问题,则可以相对确定磁盘本身或用于格式化磁盘的文件系统是根本问题。

但是,今天,我们依赖高度动态的多层软件定义环境。映射这些环境中所有组件之间的关系非常困难,尤其是因为配置不断变化。很难解释在环境的一层中表现出来的问题与其他层之间的关系。

如今,存储性能问题的根因可能不一定是物理磁盘或本地文件系统,还可能是使存储可供远程系统使用的网络或分布式文件系统。也可能是提供存储的虚拟化网络。

充分利用AIOps进行根因分析
部分原因是由于现代环境中根因分析的困难, AIOps变得如此重要。通过使用机器学习自动映射和解释复杂的环境和因果关系,AIOps可以帮助IT团队比仅依靠手动分析更快地找到性能或可用性问题的根源。简单地使用AIOps工具将大大提高您的根本原因分析能力。

就是说,您可以采取一些步骤来确保充分利用AIOps辅助的根本原因分析。它们包括以下内容。

1. 记住,配置快速变更,根因也会随之变更

在瞬息万变的现代环境中进行根因分析的棘手事情之一是,一次构成根本问题的原因可能在下一时刻改变。应用程序性能缓慢的根本原因可能是网络拥塞,但随着网络流量模式和存储系统负载的变化,下一阶段将变为IO瓶颈。

AIOps工具可以帮助解决这些变化,但是对于人类工程师而言,重要的是要记住根因是可以改变的。不要认为核心问题是一成不变的。

2. 考虑自动响应

AIOps的另一个关键功能是它使软件工具可以采取自动措施来解决问题。尽管并不是在每种情况下都自动响应是正确的解决方案(例如,您可能希望让人工工程师在进行重大变更之前先进行审查),但对于更简单的问题的自动响应可以有效地帮助确保您不仅识别根因可以快速解决,也可以在最终给用户造成严重问题之前解决它们。

3. 不要假设只有一个根因

如上所述,软件或硬件问题的原因可能是多个问题。停止响应的应用程序可能会这样做,因为代码编写得不好,无法使应用程序从意外的网络错误中恢复;在这种情况下,应用程序代码和网络问题都是此问题的根因。

这里的关键要点是,一方面,在执行根因分析时,您应努力将辅助问题与根因区分开,但您不应排除可能存在两个或多个核心潜在问题的可能性。

4. 力求与环境无关的根本原因分析

理想情况下,根因分析工作流程应对任何类型的基础架构或环境均有效。如果您依赖仅支持特定类型的环境或基础架构的监控或分析工具(例如来自特定云供应商的工具或仅针对一种操作系统设计的工具),则不会发生这种情况。

此处的教训是,您应该寻找AIOps工具 ,这些工具可以协助对任何类型的基础结构进行根本原因分析。
 
英文原文:http://suo.im/64aCgc 

AIOPS是什么,它与AI有什么关系?

OS小编 发表了文章 • 0 个评论 • 328 次浏览 • 2020-04-13 14:45 • 来自相关话题

 
现如今,AI 这个词已经被玩坏了。很多公司都声称自己在做 AI,但其实并没有。不过有另外一种新兴的 AI,各种类型的 IT 企业倒是可以尝试,而且完全不需要人工参与。

AIOps,也就是基于算法的 IT 运维(Algorithmic IT Operations),是由 Gartner 定义的新类别,源自业界之前所说的 ITOA(IT Operations and Analytics)。我们已经到达了这样的一个时代,数据科学和算法正在被用于自动化传统的 IT 运维任务和流程。算法被集成到工具里,帮助企业进一步简化运维工作,把人类从耗时又容易出错的流程中解放出来。人们不再需要在遗留的管理系统中定义和管理无穷无尽的规则和过滤器。

在过去的几年间,一些新技术不断涌现,利用数据科学和机器学习来推进日益复杂的企业数字化进程,“AIOps”(Algorithmic IT Operations)因此应运而生。Gartner 的报告宣称,到 2020 年,将近 50% 的企业将会在他们的业务和 IT 运维方面采用 AIOps,远远高于今天的 10%。

为了更好地理解 AIOps 和 AI 的区别,我们需要从头说起。
 

AI 简史

AI 一词用于描述机器(或软件)模拟人类认知的过程。也就说,机器学习像人类一样思考。40 年代,Alan Turing 掀起了 AI 热潮,但受限于计算机的计算能力,也只发展到今天的这个阶段。

问题是,我们为什么要让机器模仿人类?而为什么有些 AI 应用程序会比其他的更成功?发展 AI 的目的在于解决人类的问题,所以我们会看到像自动驾驶汽车、行为分析这类复杂的解决方案。

话说回来,IT 运维环境有一些不一样的地方。我们不会直接管理人类,我们与应用程序和基础设施打交道。而且它们可能更加复杂和不可预测,因为它们不是人类。
 

人类思维与机器思维

AIOps 的不同之处在这里体现出来。AIOps 的解决方案专注于解决问题,而且是通过使用基于算法的技术来高度模仿人类(而且以更快的速度和更大的规模)。算法的效率提升了 AIOps 的价值,而相对于人类的智慧——虽然是无限的,但不如机器来得高效。

当然,人类也能进行高效的 IT 运维。AIOps 的目的是为了让我们的生活变得更美好,但是当人类与 AIOps 参合在一起,它们之间的界限就会变得模糊。高级的 AIOps 会使用神经网络技术,它会向运维人员学习,然后尝试消除无聊的重复性劳动。
 

未来的公司

 
为什么公司需要 AIOps?现代的 IT 环境已经无比的复杂,而且千变万化,需要我们花费大量的时间和资源去监控、去诊断问题、去解决问题。很多公司处于被动的地位。但是如果他们使用了 AIOps,他们就可以利用先进的算法,花更多时间在其他更有意义的工作上,而不是重复地解决相同的问题,或者花时间管理规则和过滤器。

我们所说的规则,可以把它们简单地描述为“如果是这样那么就这么做”,它们能够应付简单的场景,但是很难扩展。相反,算法和机器学习提供了更加灵活的表达方式,不仅强大,而且健壮,能够应付不断变化的需求。这将带来更高的效率和更低的成本。对于厂商来说,他们面临的挑战在于将整个技术方案打包,避免把用户暴露于底层的复杂性当中。光是提供工具是不够的,企业需要招聘数据科学家而不仅仅是工程师。
 

前行之路

借助智能算法的技术优势,原先人工需要几个小时完成的任务现在通过自动化可以在几秒钟内完成,而且能够得到更好的结果。传统的 IT 运维需要管理大量的告警,极大地分散了企业的注意力,他们需要花很多时间解决无聊的问题,没有时间用于创新。使用 AIOps 可以解决这些问题,把运维人员从纷繁复杂的告警和噪音中解脱出来。各个行业的企业正在采用 AIOps,他们使用这项技术来改进客户的数字体验——银行、娱乐、交通、零售,甚至政府。

尽管 AIOps 还是一个新名词,但并不代表它只是未来的一种趋势而已。在这个数字的年代,任何使用传统技术来管理机器数据的组织要么忽略了信息的价值,要么已经让他们的运维团队不堪重负。随着数据的暴涨,CIO 们应该快速拥抱 AIOps。传统 AI 仍然会在某些领域发挥它的作用,而 AIOps 将为企业带来最直接最深远的价值。
 
文章来自微信公众号:高效开发运维 查看全部
 
现如今,AI 这个词已经被玩坏了。很多公司都声称自己在做 AI,但其实并没有。不过有另外一种新兴的 AI,各种类型的 IT 企业倒是可以尝试,而且完全不需要人工参与。

AIOps,也就是基于算法的 IT 运维(Algorithmic IT Operations),是由 Gartner 定义的新类别,源自业界之前所说的 ITOA(IT Operations and Analytics)。我们已经到达了这样的一个时代,数据科学和算法正在被用于自动化传统的 IT 运维任务和流程。算法被集成到工具里,帮助企业进一步简化运维工作,把人类从耗时又容易出错的流程中解放出来。人们不再需要在遗留的管理系统中定义和管理无穷无尽的规则和过滤器。

在过去的几年间,一些新技术不断涌现,利用数据科学和机器学习来推进日益复杂的企业数字化进程,“AIOps”(Algorithmic IT Operations)因此应运而生。Gartner 的报告宣称,到 2020 年,将近 50% 的企业将会在他们的业务和 IT 运维方面采用 AIOps,远远高于今天的 10%。

为了更好地理解 AIOps 和 AI 的区别,我们需要从头说起。

 


AI 简史


AI 一词用于描述机器(或软件)模拟人类认知的过程。也就说,机器学习像人类一样思考。40 年代,Alan Turing 掀起了 AI 热潮,但受限于计算机的计算能力,也只发展到今天的这个阶段。

问题是,我们为什么要让机器模仿人类?而为什么有些 AI 应用程序会比其他的更成功?发展 AI 的目的在于解决人类的问题,所以我们会看到像自动驾驶汽车、行为分析这类复杂的解决方案。

话说回来,IT 运维环境有一些不一样的地方。我们不会直接管理人类,我们与应用程序和基础设施打交道。而且它们可能更加复杂和不可预测,因为它们不是人类。

 


人类思维与机器思维


AIOps 的不同之处在这里体现出来。AIOps 的解决方案专注于解决问题,而且是通过使用基于算法的技术来高度模仿人类(而且以更快的速度和更大的规模)。算法的效率提升了 AIOps 的价值,而相对于人类的智慧——虽然是无限的,但不如机器来得高效。

当然,人类也能进行高效的 IT 运维。AIOps 的目的是为了让我们的生活变得更美好,但是当人类与 AIOps 参合在一起,它们之间的界限就会变得模糊。高级的 AIOps 会使用神经网络技术,它会向运维人员学习,然后尝试消除无聊的重复性劳动。

 


未来的公司


 
为什么公司需要 AIOps?现代的 IT 环境已经无比的复杂,而且千变万化,需要我们花费大量的时间和资源去监控、去诊断问题、去解决问题。很多公司处于被动的地位。但是如果他们使用了 AIOps,他们就可以利用先进的算法,花更多时间在其他更有意义的工作上,而不是重复地解决相同的问题,或者花时间管理规则和过滤器。

我们所说的规则,可以把它们简单地描述为“如果是这样那么就这么做”,它们能够应付简单的场景,但是很难扩展。相反,算法和机器学习提供了更加灵活的表达方式,不仅强大,而且健壮,能够应付不断变化的需求。这将带来更高的效率和更低的成本。对于厂商来说,他们面临的挑战在于将整个技术方案打包,避免把用户暴露于底层的复杂性当中。光是提供工具是不够的,企业需要招聘数据科学家而不仅仅是工程师。

 


前行之路


借助智能算法的技术优势,原先人工需要几个小时完成的任务现在通过自动化可以在几秒钟内完成,而且能够得到更好的结果。传统的 IT 运维需要管理大量的告警,极大地分散了企业的注意力,他们需要花很多时间解决无聊的问题,没有时间用于创新。使用 AIOps 可以解决这些问题,把运维人员从纷繁复杂的告警和噪音中解脱出来。各个行业的企业正在采用 AIOps,他们使用这项技术来改进客户的数字体验——银行、娱乐、交通、零售,甚至政府。

尽管 AIOps 还是一个新名词,但并不代表它只是未来的一种趋势而已。在这个数字的年代,任何使用传统技术来管理机器数据的组织要么忽略了信息的价值,要么已经让他们的运维团队不堪重负。随着数据的暴涨,CIO 们应该快速拥抱 AIOps。传统 AI 仍然会在某些领域发挥它的作用,而 AIOps 将为企业带来最直接最深远的价值。
 
文章来自微信公众号:高效开发运维

2018最新《web前端开发》从零基础到高级项目实战全套视频教程

hybbq 发表了文章 • 0 个评论 • 1329 次浏览 • 2018-11-01 09:54 • 来自相关话题

2018最新web前端开发教程移动端开发全套教程前端开发源码视频,《web前端开发》从零基础到高级项目实战14个,整套教程包含笔记+开发工具+源码

《web前端开发》教程大纲目录


14个前端项目实战


下载地址:http://www.sucaihuo.com/video/448.html 查看全部

2018最新web前端开发教程移动端开发全套教程前端开发源码视频,《web前端开发》从零基础到高级项目实战14个,整套教程包含笔记+开发工具+源码

《web前端开发》教程大纲目录


14个前端项目实战


下载地址:http://www.sucaihuo.com/video/448.html

情商管理「转」

Ansible 发表了文章 • 0 个评论 • 1431 次浏览 • 2018-02-01 23:46 • 来自相关话题

一、时间管理的能力​
时间对于学习非常宝贵,这点毋庸多言。清华大学副校长、杰出的生物学家施一公曾说过:无论什么科学,智商都不是最重要的,第一重要的是时间的付出。 著名人大校友和投资人张磊说要做时间的朋友懂得“滞后满足”。你的时间在哪里,你的成就在哪里。 不能因为自己还年轻,就放任自己,放松对时间的管理。人越长大,觉得时间会过得越快,尤其是进入30岁之后,这个感觉就会越来越明显。因为人对年龄的感知是按照对数级增长的,你现在活了8年,相当于小时候活的3(log28)年。我们对时间的感知同样是这样:2~3岁经历了一年,和我已有生命的总长度一样;到了80岁,再经历一年,只是我经历岁月的1/80。“比例感知”让我们对时间的概念,对数级增加。如果要抵消我们的”对数感知“,我们需要让我们的”生命精彩程度“指数级增长---我们要不停的创造”激动人心“的回忆----精彩的、奇怪的、酷的。在人生中树立无数的里程碑:小到读一本新的小说,尝试新的音乐,养一种难以成活的植物;大到下决心去读一个博士学位,在陌生的城市工作3年,写一本书。

关于人们对时间对数感知详情请参考知乎的一个讨论:https://www.zhihu.com/question/30824529。对时间的管理能力,是一个人是否能走向阶段性成功一个很重要的影响因素。那么,如何管理好我们的时间提高我们的工作和学习效率呢?
 

1、优先级原则

用好时间的第一条原则就是优先级原则,把任务计划里一天中,一周中,一个月中,一个季度中,一年中重要的任务放在优先级高的位置,然后花时间优先完成。大家在日常工作,学习和生活中,总会遇到各种任务,有的是重要任务,有的是次要任务,有的是琐事。对这些任务的处理,不能不分先后,不分重点,不能平均用力,要有所为有所不为。

有这样一个生活例子:如果先将一个大的容器里放入土豆,那么这个容器里放满土豆后,还可以再放入大米,当放满大米后,还可以再放入水。但是,如果反过来,先将这个容器里放满了水,就无法再放大米和土豆了,先放满了大米,也就无法再放入土豆了。

这里的土豆,大米和水,分别代表的就是我们的重要任务,次要任务和琐事。只有提前优先处理好重要任务,才能接着处理次要任务和琐事,如果每天都去处理次要任务和琐事了,那么一些重要的任务就无法完成。
 

2、最后期限原则

在采取了优先级原则来处理每个时段的各种任务之后,还得为自己完成这个任务设置一个最后期限(deadline)。人都有懒惰的基因,除非要完成的任务特别有意思你对它特别感兴趣,否则这些自己要着手完成的任务很有可能会被拖延。所以为了防止拖延,必须明确告诉自己,这个任务最迟必须在什么时候完成,如果预计可能延期,那么就需要分配更多时间或者加班来保证合格任务按时完成。最后期限原则能够很好的督促你完成优先级高的任务。
 

3、利用夜晚4个小时

平时大家白天8个小时可能会上班或者上课,每个人花的时间都差不多。但为什么几年后,当时水平差不多的人,有的人就已经步步高升,而有的人还在原地踏步呢?那就是因为有这样一句话:“8小时决定现在,4小时决定未来”。人白天8个小时用于工作,回到家的时间大约为20点,然后24点上床睡觉(8点起床,符合8个小时睡眠要求)。因此这期间有4个小时可以用来学习。但有的人却白白浪费了这个时间,而有的人很好利用了这4个小时不断提高自己,为自己充电。所谓机会总是给有准备的人,越努力越幸运,厚积薄发就是在这里体现出来的。
 

4、大量阅读,看电视,灌水聊天,争论都是浪费生命

无意义的阅读等于浪费生命。很多成功说或者鸡汤告诉大家,一定要多阅读,阅读可以改变人生。实际上,大量无意义的阅读,比如看各种新闻,看微博,看微信,看BBS,看毒鸡汤,在QQ、微信群聊天灌水都会花费大量的时间和精力,影响自己的任务完成。所以,这种阅读是有害的,是一种慢性自杀。

看电视也是慢性自杀。如果一个在人生起步阶段的人一天花费超过3个小时看无聊的电视节目,他一定会一事无成。

再就是与人无意义的争吵和争论。经常有一些学员在麦洛克菲的技术群里发生各种争吵,甚至开始人身攻击。这个时候,我都会出面制止,并告诫他们可以理性讨论,但千万不要做这些无意义的争吵和争论,更不要想着把自己的观点强加于人,没有意义,对你也没有任何好处,反而浪费了你的大量时间,影响了你的好心情。 有一句话说得好,世界上有两件事最难,一是把自己的思想装进别人的脑袋里;二是把别人的钱装进自己的口袋里。 人观点和思想的改变不是靠争论,主要是靠亲身经历,吃过亏上过当了,才会痛彻心扉,更何况有时候我们自己的观点未必就是对的。 随着时间的增长,我们也会不断修正自己的观点和看法。所以,请从现在开始,在与人相处的时候,用友好的态度去探讨问题,拒绝争论或者争吵,谁也别想说服谁,即使说服了谁也是口服心不服,即使心服了也没有任何意义, 少说多做多思考,管住自己这张嘴。
 
二、不断学习能力
有一句话说得好,只有两件事,是一个人一辈子都需要去完成的,一个是学习,一个是锻炼。学习能力的培养,也是一个人能够成功很重要的制约因素。
 

1、快速学习


现代科学技术日新月异,尤其是在IT领域,新的理论,技术和架构更是层出不穷,因此,必须快速的去学习这些新的技术,保持自己的知识与技能与时俱进。

人一旦成年之后,无论是在学校,还是在企业,都不会留给我们太多的学习时间,都需要在规定的时间完成任务。比如在大家求学过程中,花了9年时间学习小学(含幼儿园,学前班)课程,花6年学习中学课程,花4年学习大学课程,花3年学习硕士课程,却只能花2年完成博士课程(硕博连读按5年算的话)。这个学习过程中,随着年龄的增加,要学的知识越来越多,越来越深,给我们学习的时间越来越少。所以,需不断培养自己的快速学习能力,适应新的时代要求。当一个互联网企业把一个任务交到你手头,给你的学习时间是非常短的,也许你用在学习的时间,不会超过3天,一般几个星期或者1个月就会要求做出成果。

有一个大牛曾经说过一句话非常对:我不是懂得多,我只是学得快。
 

2、自学能力

人不可能在学校或者培训机构学一辈子,也不可能一直都有老师教授你知识和技术。因此,自学能力的养成非常重要。在学习IT方面,IT培训的目的是让你少走弯路,带你入门,但培训绝对不会是你学习的终点,而是你学习更多知识的起点。结束培训之后,遇到新的知识,就要善于自学,善于通过使用书籍,视频,技术文档,论坛,搜索引擎等来获取和学习各种知识。

首先我们要有一个意识就是,无论干哪行,学哪个方面的技术,在我们下决心学习它的时候,第一个需要解决的问题就是:学习它可以分为哪几个阶段?每个阶段都有哪几本经典的好书供学习?有什么网络资源或者论坛可供参考?只有在每个阶段都找到了一两本相关的经典的好书,才为我们学习这个方面的技术找准了方向,学习起来也会事半功倍。所以,在我学习程序设计的时候,我对书的要求很高,不是随便拿一本来看,看一本差书,既浪费时间,又毫无收获,而是要找口碑最好,写得非常经典的书籍来看。
 

3、学习方法

在快速学习和自学过程中,需要讲究一些学习方法,而且学习不同的技术,方法也不完全一样。学习任何东西,都是很简单的,起码是有规律的或者可以深入浅出的。如果你学得很吃力,那么肯定是方法或者方向不对。

课前预习,课中跟上老师的思路,积极思考,积极回答问题,课后复习和练习以及答疑,阶段性总结,这些都是学习任何知识的通用方法。

对于学IT编程来说,它的学习路径一般为:认准方向(比如安全方向)==》快速打下基础(C|C++,Java等面向对象|数据结构|Win/Linux/Android平台开发入门|sql,网络协议,多线程)这个阶段侧重于理解动手小练习模仿记忆==》找几个好的开源的项目修改和二次开发学以致用做几个体现自己想法的东西==》进公司锻炼和学习不断提高==》成为有经验的大牛。

学习计算机编程,一定要动手。基础练习不是照着抄一遍,而是按照思路背着写,写不出来再看代码。在看书学习的时候,要习惯性的打开VC等开发工具,经常实践书中的理论和例子。一些重要的代码应该背着写一遍(注意:不是照着抄),加深印象,当背着写不出来的时候,再回头看看书中的代码。要明白,书看懂了,离会写代码还有一段距离,在写代码的时候还会遇到很多问题。遇到问题不要怕,解决了,才是学会了。

抓住学习重点,拒绝均衡用力。学习的时候要有所为有所不为,不要面面俱到,想把书上每个点,每句话或者每句代码都搞懂。基础的东西,抓住重点(每个方向的重点参见《进军IT与安全行业:推荐学习路线图》),必须好好学一下,比如C语言,数据结构和汇编等。但有的东西,一开始不用立即学得深入,了解即可,用到的时候,以项目驱动,再边做边学,深入学。

学习第一遍,可能会比较吃力,一般能够理解50%左右就很不错的,这个时候不要灰心,把问题记下来,然后多看几遍书,“书读百遍其义自见”,这个道理在学习计算机技术的时候同样适用。反复读几次书中内容,理解的程度就可以提高到80%,90%等。或者也可以先把遇到的问题记录下来,等以后再回过头来想这个问题,也许就会觉得豁然开朗没那么难了。学习的时候需要保持高度的注意力,不能边听歌边学习,不能边看电视边学习,不能眼睛在看字头脑却没跟上在想别的事。

面试遇到的问题如果不会,要及时解决。参加求职面试的时候问的问题,都是IT相关行业里重要的知识点,对于相关项目开发具有重要意义。因此,如果在面试的时候遇到不会的问题,面试结束之后,一定要通过不同方式,去获得答案。这也是一个学习的很好机会。否则,下次再遇到,如果还不会,机会就又错过了。
 
三、身体管理能力
有一句话说得很好:一个人的身体健康是1,而财富、感情、事业,家庭……,都是1后面的0,只有依附于这个1,零的存在才会有意义,如果没了这个1,那么一切都将不存在。

IT行业是一个压力大,加班多的行业。因此如果身体不行,很容易出严重的问题。大家也经常在新闻里看到IT领域很多工程师甚至是创始人过劳猝死的例子。因此,一个好的身体,相当重要。

20几岁是人生的黄金阶段,一般病痛不会找上门。但是一旦过了30岁,尤其是35岁之后,就是病找人了。
 

1、健康饮食

健康饮食,对身体健康非常重要。一日三餐,规律饮食,均衡营养合理搭配肉食和蔬菜水果,细嚼慢咽降低胃肠道压力,不吃过烫食物,同时节制饮食,吃什么都最好控制食量,做到7分饱,尤其是晚餐,宁饿不撑,以免加重胃的负担。因此,健康,从管住这张嘴开始。
 
 

2、规律作息

所谓规律作息,最重要的就是别熬夜。尤其是过了30岁之后,每天要保证8个小时的睡眠时间,因此一定要在零点前上床休息。熬夜对身体的伤害非常大,因为这样会让身体器官,尤其是心脏处于全负荷下工作,得不到休息,那么容易造成心脏等罢工从而发生猝死。
 

3、适当锻炼

工作之余,适当的运动和锻炼,是非常有利于身体健康的。比如饭后百步走,游泳,爬山,跑步、打球等等。
 
 

4、定期体检

每年做一到二次身体健康体检,对胃,肝,肾,心脏,结、直肠,肺,血液血脂等进行全面检查,甚至过了一定年龄(比如35岁之后)需要加上胃镜和肠镜的检查对肺进行低剂量CT检查, 及早发现身体不适或者出现三高(高血压、高血脂、高血糖,是对动脉硬化,脑溢血,冠心病的潜在威胁),将大病遏制在摇篮中,排除身体中的各种定时炸弹。
 
 
四、情绪管理能力
情绪管理能力是一个人在情商方面最重要的体现。一个人,只有在能控制自己的各种情绪之后,才能体现出一个高情商的人。有一句说得好,人永远需要两种能力:好好说话和情绪稳定。
 

1、放下自尊心

“世上最肮脏的,莫过于自尊心”--尤瑟纳尔。社会上处久了,才发现自尊心分明就是面皮薄、意志弱,受不起挫折,经不起摔打的代名词。自尊心是颗种子,捧在手上只能枯死,非得踩进泥土,从磨难中汲取养料,成长,成熟。在没有足够的实力前,请勿过分强调你的自尊心。遇到自尊心受到伤害了,一定要善于自我解嘲,知耻而后勇。 

阿里高管彭蕾曾说过:不管别人怎么赞扬你也好,或者羞辱你也好,你内心知道你自己是谁,自己内心是很定的,无论是捧你还是打你,外界的状况都不会伤害到你,这才是真正皮实的状态。对于创业者或者我们组建团队的时候,这个能力蛮重要的。
 

2、远离垃圾人

生活中,我们难免会遇到各种“垃圾人”。他们到处跑来跑去,身上充满了负面垃圾:充满了沮丧、愤怒、忌妒、算计、仇恨,充满了傲慢与偏见、贪心不满足、抱怨、比较,充满了见不得人好、愚昧、无知、烦恼、报复、和充满了失望。随着心中的垃圾堆积又堆积,他们终需找个地方倾倒;有时候,我们刚好碰上了,垃圾就往我们身上丢。 所以,无须介意。只要微笑、挥挥手、远离他们,然后继续走我们自己的路就行。绝对不让垃圾人接管自己生活当中的任何一天。人生短暂,绝对不要浪费心思和精力在这些事上。

千万不能和垃圾人吵起来,甚至大打出手,最后受苦的还是自己,不值得。一物降一物,垃圾人肯定会遇到更狠的人对付他,但与我们无关。有一句话说得好:人给狗让路,不丢人。
 

3、与人为善,与人遇到矛盾,友好的建设性的解决问题

远离垃圾人的同时,也要防止自己成为别人眼中的垃圾人。所以,一定要做到与人为善,尊重对方,客气友好。与人遇到矛盾和问题,一定不要动不动就口出恶言,要友好的建设性的解决问题,起码也得先礼后兵,因为很多后果严重的事件都始于一两句恶语激怒了彼此。千万不要一开始就把问题发展到不可收拾的地步。 

关于互相尊重:“尊重上级是天职;尊重下属是美德;尊重同事是本份;尊重客户是常识;而尊重所有人则是教养。”我们每一个人都要做到这一点,因为尊重他人是良好沟通的基础,而且尊重他人就是尊重自己。 

关于发脾气:把脾气发出来,那叫本能;把脾气压下去,那叫本事。有时候把脾气发出来,发的不是脾气,发的是代价。
 

4、忍一忍,冲动是魔鬼

忍,不是叫你逆来顺受,而是用更好的办法解决问题,不是动不动就两败俱伤。某人惹你生气了,即使你恨不得马上给他一耳光,也要让子弹飞了一会儿。如果过了一晚上,你还是想给他一耳光,那就再想办法,但往往一个晚上后,你改变了主意。不全是忍了,而是想到了更好的解决办法。

同样,凡是有什么想法,尤其是大事情,千万不要冲动决定。在工作中受到了一点小委屈,也不要立即冲动说不干了(最后你会发现,在哪里工作都会有受气的时候)。

大事急事做决定一定要缓一缓,冲动依然会付出代价。有一句说得很好:大事要细办,小事要认真办,急事要缓办。急事宜缓办,忙则多错。说干就干有的时候是执行力的体现,但有时候是冲动的体现,需要仔细辨别。
 

5、不做愤青

马云曾经说过:10年前我更关心全世界,结果日子过得非常艰难;5年前我很关心中国的命运,我也过得很艰难;3年前开始我只关心公司,我的日子开始好起来。现在我只关心自己,越来越好。所以我说,关心好自己,每个人把自己喜欢的事做好,这个世界会好起来,别像奥巴马一样关心全世界。

社会总会存在各种不公,因此,你不要因为你的愤怒而耽误了你自己的行动。首先从改变自己开始,然后就能改变周围的人,再能改变自己的家乡,然后就能改变整个世界。否则,人微言轻,吃着地沟油的命,操着中南海的心,你说了,你愤怒了,但是都不算。
 

6、养成记日记的习惯

 
写日记有很多好处。可以在日记里反省,总结和规划未来,调整自己的心态。日记是一种很好的自我调节的手段。假如人是一颗飞向目标的火箭,那么日记有点修正你跑偏方向的功能。很多成功人士,都有记录日记的习惯。日记不用天天记,需要反省,总结和规划的时候就可以写一写,写的篇幅可长可短。写完之后,可以定期回看一下曾经写的日记,也是一笔宝贵的经历。因为日记里写的都是自己真实的想法和内心,有的东西可能无法让外人直视,所以请注意做好对日记的保密工作。
 

7、讨论可以,但不与人争论(辩论)

正如上面所说,遇到各种不同观点,可以与人理性讨论,但千万不要做这些无意义的争吵和争论,辩论,更不要想着把自己的观点强加于人,没有意义,对你也没有任何好处,反而浪费了你的大量时间,影响了你的好心情。有一句话说得好,世界上有两件事最难,一是把自己的思想装进别人的脑袋里;二是把别人的钱装进自己的口袋里。 人观点和思想的改变不是靠争论,主要是靠亲身经历,吃过亏上过当了,才会痛彻心扉,更何况有时候我们自己的观点未必就是对的。 随着时间的增长,我们也会不断修正自己的观点和看法。所以,请从现在开始,在与人相处的时候,用友好的态度去探讨问题,拒绝争论或者争吵,谁也别想说服谁,即使说服了谁也是口服心不服,即使心服了也没有任何意义,少说多做多思考,管住自己这张嘴。有一个关于孔子与子贡关于“三季人”的故事,可以很好的说明这个问题:

早晨,子贡在大院门口打扫院子。有人来到,问子贡:“您是孔子吗?” 子贡答道:“有什么事需要向我们老师请教?” “我想请教关于时间的问题?” “这个问题我知道,可以回答你” “那你说说一年有几季?” “四季。”子贡笑答。 “不对,一年只有三季!” “四季!!” “三季!!” “四季!!!”子贡理直气壮。 “三季!!!”来人毫不示弱。然后就争论不止,一直争论到中午也没消停。

孔子听到声音,从院内出来,子贡上前讲明原委,让孔子评定。孔子先是不答,观察一阵后说:“一年的确只有三季。“ 来人听此,大笑而去。

待来人走后,子贡忙问老师:“这与您所教有别啊,且一年的确有四季啊! “这一年到底应是几季?”

孔子答:“四季” ,子贡不解。

孔子继而说道:“这时和刚才不同,方才那人一身绿衣。他分明是田间的蚱蜢。蚱蜢者,春天生,秋天亡,一生只经历过春、夏、秋三季,哪里见过冬天?所以在他的思维里,根本就没有‘冬季’这个概念。你跟这样的人那就是争上三天三夜也不会有结果的。你若不顺着他说,他能这么爽快就走吗?你虽然上了个小当,但却学到了莫大一个乖。” 说完,子贡立刻明白了。
 
五、深度思考的能力
有的人看起来也很勤奋,每天也都勤勤恳恳的工作学习和生活,但始终无法向前获得更大的成功。而有的人,平时也不怎么太努力工作,也不怎么太努力学习,却最后过得很好。你在每天挤公交地铁上班,没准人家已经在旅行的路上,在朋友圈晒世界各地的蓝天白云。这是为什么呢?不是说了越努力越幸运吗?

实际上这里有一个战术上的勤奋和战略上的勤奋(思考)的差别。

每天除了完成日常的工作,生活和学习任务,也需要花一点时间来反省过去,总结经验,不断分析现在的问题,找到答案,纠正,思考规划未来,保持方向的正确。

人生是一场持久战和长跑,随时都有机会弯道超车。试着深度思考,永远不要用战术上的勤奋掩盖战略上的懒惰。否则,你每天的忙碌,也无法忙碌出一个精彩的人生。

人生中有些事情,宜早规划早执行。以北京的房价和限车牌限号就是个非常典型的例子。后办者非常被动。

此外,除了工作之外,应该发展一个第二职业或者兼职,能够通过第二职业获得额外的收入,以应对第一职业的35岁现象。第二职业可以是投资(炒股,买房等,但风险较大需要慎重,但高风险意味着高收入。第一次炒股一定要用小本投入,因为第一次一般都会亏,小本当交学费不心疼),也可以去兼职,也可以写书,去当培训老师或者哪怕是开淘宝,摆地摊。总之,一定要趁年轻,多找事做。
 
六、遏制错误的能力
每个人都会犯错误。但是,我们应该拥有高度的责任来遏制错误的发生,因为错误一旦发生,就意味着会有代价或者损失,有的损失或者代价甚至是巨大而不可挽回的。
 

1、堵住逻辑漏洞

做事情的时候,要符合逻辑和一定的流程,不能有任何疏忽。把该考虑的因素都必须考虑进来,不能相信口头承诺。在处理文字或者签订合同的时候,也要严谨, 不能有漏洞,要善于使用不同的方法(比如提前调查各种背景,提前向自己的亲戚朋友征询意见和建议(个人的认识和经历总有局限性,因此一定要参考大家的意见))发现其中的坑,然后及早提出问题,先小人后君子。否则,问题就会越来越大,错误会越来越严重。
 
 

2、克服粗心,反复检查

有一类错误,是因为粗心大意造成的,这类错误最好克服。方法就是:反复检查。比如你发一条短信,发一封邮件给领导,里面由于粗心可能会出现各种错别字。但是,只要你态度认真,打完字之后,再仔细看过检查一两遍,这种问题就会解决。
 

3、预判并解决存在的问题,防患于未然

有时候,错误是可以预测到的,那么这个时候为了防止错误的发生,请立即采取措施解除错误的隐患。比如你看到电脑旁边有一杯水,你应该会预测到这杯水可能会不小心被碰倒洒到电脑上,造成电脑故障。那么一旦预判到这个错误可能发生之后,立即采取行动,把这杯水喝掉或者移开到安全地方,就可以完全预防可能发生的错误。 

孔子曰”君子不立于危墙之下”,君子要远离危险的地方。这包括两方面:一是防患于未然,预先觉察潜在的危险,并采取防范措施;二是一旦发现自己处于危险境地,要及时离开。
 

4、遵守规则,程序

遵守社会中指定的规则,流程,和程序,可以防止错误的发生。社会中的规则是这个社会平安健康运行的一套科学总结,不可违规,否则会造成严重的错误和不可挽回的损失。比如不要酒后驾车,不要闯红灯,比如乘车前先要进行安检,比如医院的“一人一管一抛弃”,甚至进入野生动物园不要下车,这些都是一些常见的社会规则,流程,不可打破。要有敬畏之心,严格遵守,否则就会出现各种严重的车祸,恐怖袭击,医疗事故,危及生命安全造成严重后果。
 
七、学会拒绝的能力
有的时候,大家由于年轻,缺乏足够的社会经验,对于别人提出的非分要求(比如借钱),碍于情面,不好意思拒绝,硬着头皮答应,结果非常被动,甚至给自己带来严重后果。

这里给大家的一句话就是:别不好意思拒绝别人,反正那些好意思为难你的人都不是什么好人。因此,对于别人提的一些要求,仔细分析是否为过分要求,如果是过分要求,我们应该要敢于拒绝,善于拒绝。
 
转载分享阅读:http://mallocfree.com/basic/c/eq.htm  查看全部
一、时间管理的能力​
时间对于学习非常宝贵,这点毋庸多言。清华大学副校长、杰出的生物学家施一公曾说过:无论什么科学,智商都不是最重要的,第一重要的是时间的付出。 著名人大校友和投资人张磊说要做时间的朋友懂得“滞后满足”。你的时间在哪里,你的成就在哪里。 不能因为自己还年轻,就放任自己,放松对时间的管理。人越长大,觉得时间会过得越快,尤其是进入30岁之后,这个感觉就会越来越明显。因为人对年龄的感知是按照对数级增长的,你现在活了8年,相当于小时候活的3(log28)年。我们对时间的感知同样是这样:2~3岁经历了一年,和我已有生命的总长度一样;到了80岁,再经历一年,只是我经历岁月的1/80。“比例感知”让我们对时间的概念,对数级增加。如果要抵消我们的”对数感知“,我们需要让我们的”生命精彩程度“指数级增长---我们要不停的创造”激动人心“的回忆----精彩的、奇怪的、酷的。在人生中树立无数的里程碑:小到读一本新的小说,尝试新的音乐,养一种难以成活的植物;大到下决心去读一个博士学位,在陌生的城市工作3年,写一本书。

关于人们对时间对数感知详情请参考知乎的一个讨论:https://www.zhihu.com/question/30824529。对时间的管理能力,是一个人是否能走向阶段性成功一个很重要的影响因素。那么,如何管理好我们的时间提高我们的工作和学习效率呢?
 


1、优先级原则


用好时间的第一条原则就是优先级原则,把任务计划里一天中,一周中,一个月中,一个季度中,一年中重要的任务放在优先级高的位置,然后花时间优先完成。大家在日常工作,学习和生活中,总会遇到各种任务,有的是重要任务,有的是次要任务,有的是琐事。对这些任务的处理,不能不分先后,不分重点,不能平均用力,要有所为有所不为。

有这样一个生活例子:如果先将一个大的容器里放入土豆,那么这个容器里放满土豆后,还可以再放入大米,当放满大米后,还可以再放入水。但是,如果反过来,先将这个容器里放满了水,就无法再放大米和土豆了,先放满了大米,也就无法再放入土豆了。

这里的土豆,大米和水,分别代表的就是我们的重要任务,次要任务和琐事。只有提前优先处理好重要任务,才能接着处理次要任务和琐事,如果每天都去处理次要任务和琐事了,那么一些重要的任务就无法完成。
 


2、最后期限原则


在采取了优先级原则来处理每个时段的各种任务之后,还得为自己完成这个任务设置一个最后期限(deadline)。人都有懒惰的基因,除非要完成的任务特别有意思你对它特别感兴趣,否则这些自己要着手完成的任务很有可能会被拖延。所以为了防止拖延,必须明确告诉自己,这个任务最迟必须在什么时候完成,如果预计可能延期,那么就需要分配更多时间或者加班来保证合格任务按时完成。最后期限原则能够很好的督促你完成优先级高的任务。
 


3、利用夜晚4个小时


平时大家白天8个小时可能会上班或者上课,每个人花的时间都差不多。但为什么几年后,当时水平差不多的人,有的人就已经步步高升,而有的人还在原地踏步呢?那就是因为有这样一句话:“8小时决定现在,4小时决定未来”。人白天8个小时用于工作,回到家的时间大约为20点,然后24点上床睡觉(8点起床,符合8个小时睡眠要求)。因此这期间有4个小时可以用来学习。但有的人却白白浪费了这个时间,而有的人很好利用了这4个小时不断提高自己,为自己充电。所谓机会总是给有准备的人,越努力越幸运,厚积薄发就是在这里体现出来的。
 


4、大量阅读,看电视,灌水聊天,争论都是浪费生命


无意义的阅读等于浪费生命。很多成功说或者鸡汤告诉大家,一定要多阅读,阅读可以改变人生。实际上,大量无意义的阅读,比如看各种新闻,看微博,看微信,看BBS,看毒鸡汤,在QQ、微信群聊天灌水都会花费大量的时间和精力,影响自己的任务完成。所以,这种阅读是有害的,是一种慢性自杀。

看电视也是慢性自杀。如果一个在人生起步阶段的人一天花费超过3个小时看无聊的电视节目,他一定会一事无成。

再就是与人无意义的争吵和争论。经常有一些学员在麦洛克菲的技术群里发生各种争吵,甚至开始人身攻击。这个时候,我都会出面制止,并告诫他们可以理性讨论,但千万不要做这些无意义的争吵和争论,更不要想着把自己的观点强加于人,没有意义,对你也没有任何好处,反而浪费了你的大量时间,影响了你的好心情。 有一句话说得好,世界上有两件事最难,一是把自己的思想装进别人的脑袋里;二是把别人的钱装进自己的口袋里。 人观点和思想的改变不是靠争论,主要是靠亲身经历,吃过亏上过当了,才会痛彻心扉,更何况有时候我们自己的观点未必就是对的。 随着时间的增长,我们也会不断修正自己的观点和看法。所以,请从现在开始,在与人相处的时候,用友好的态度去探讨问题,拒绝争论或者争吵,谁也别想说服谁,即使说服了谁也是口服心不服,即使心服了也没有任何意义, 少说多做多思考,管住自己这张嘴。
 
二、不断学习能力
有一句话说得好,只有两件事,是一个人一辈子都需要去完成的,一个是学习,一个是锻炼。学习能力的培养,也是一个人能够成功很重要的制约因素。
 


1、快速学习



现代科学技术日新月异,尤其是在IT领域,新的理论,技术和架构更是层出不穷,因此,必须快速的去学习这些新的技术,保持自己的知识与技能与时俱进。

人一旦成年之后,无论是在学校,还是在企业,都不会留给我们太多的学习时间,都需要在规定的时间完成任务。比如在大家求学过程中,花了9年时间学习小学(含幼儿园,学前班)课程,花6年学习中学课程,花4年学习大学课程,花3年学习硕士课程,却只能花2年完成博士课程(硕博连读按5年算的话)。这个学习过程中,随着年龄的增加,要学的知识越来越多,越来越深,给我们学习的时间越来越少。所以,需不断培养自己的快速学习能力,适应新的时代要求。当一个互联网企业把一个任务交到你手头,给你的学习时间是非常短的,也许你用在学习的时间,不会超过3天,一般几个星期或者1个月就会要求做出成果。

有一个大牛曾经说过一句话非常对:我不是懂得多,我只是学得快。
 


2、自学能力


人不可能在学校或者培训机构学一辈子,也不可能一直都有老师教授你知识和技术。因此,自学能力的养成非常重要。在学习IT方面,IT培训的目的是让你少走弯路,带你入门,但培训绝对不会是你学习的终点,而是你学习更多知识的起点。结束培训之后,遇到新的知识,就要善于自学,善于通过使用书籍,视频,技术文档,论坛,搜索引擎等来获取和学习各种知识。

首先我们要有一个意识就是,无论干哪行,学哪个方面的技术,在我们下决心学习它的时候,第一个需要解决的问题就是:学习它可以分为哪几个阶段?每个阶段都有哪几本经典的好书供学习?有什么网络资源或者论坛可供参考?只有在每个阶段都找到了一两本相关的经典的好书,才为我们学习这个方面的技术找准了方向,学习起来也会事半功倍。所以,在我学习程序设计的时候,我对书的要求很高,不是随便拿一本来看,看一本差书,既浪费时间,又毫无收获,而是要找口碑最好,写得非常经典的书籍来看。
 


3、学习方法


在快速学习和自学过程中,需要讲究一些学习方法,而且学习不同的技术,方法也不完全一样。学习任何东西,都是很简单的,起码是有规律的或者可以深入浅出的。如果你学得很吃力,那么肯定是方法或者方向不对。

课前预习,课中跟上老师的思路,积极思考,积极回答问题,课后复习和练习以及答疑,阶段性总结,这些都是学习任何知识的通用方法。

对于学IT编程来说,它的学习路径一般为:认准方向(比如安全方向)==》快速打下基础(C|C++,Java等面向对象|数据结构|Win/Linux/Android平台开发入门|sql,网络协议,多线程)这个阶段侧重于理解动手小练习模仿记忆==》找几个好的开源的项目修改和二次开发学以致用做几个体现自己想法的东西==》进公司锻炼和学习不断提高==》成为有经验的大牛。

学习计算机编程,一定要动手。基础练习不是照着抄一遍,而是按照思路背着写,写不出来再看代码。在看书学习的时候,要习惯性的打开VC等开发工具,经常实践书中的理论和例子。一些重要的代码应该背着写一遍(注意:不是照着抄),加深印象,当背着写不出来的时候,再回头看看书中的代码。要明白,书看懂了,离会写代码还有一段距离,在写代码的时候还会遇到很多问题。遇到问题不要怕,解决了,才是学会了。

抓住学习重点,拒绝均衡用力。学习的时候要有所为有所不为,不要面面俱到,想把书上每个点,每句话或者每句代码都搞懂。基础的东西,抓住重点(每个方向的重点参见《进军IT与安全行业:推荐学习路线图》),必须好好学一下,比如C语言,数据结构和汇编等。但有的东西,一开始不用立即学得深入,了解即可,用到的时候,以项目驱动,再边做边学,深入学。

学习第一遍,可能会比较吃力,一般能够理解50%左右就很不错的,这个时候不要灰心,把问题记下来,然后多看几遍书,“书读百遍其义自见”,这个道理在学习计算机技术的时候同样适用。反复读几次书中内容,理解的程度就可以提高到80%,90%等。或者也可以先把遇到的问题记录下来,等以后再回过头来想这个问题,也许就会觉得豁然开朗没那么难了。学习的时候需要保持高度的注意力,不能边听歌边学习,不能边看电视边学习,不能眼睛在看字头脑却没跟上在想别的事。

面试遇到的问题如果不会,要及时解决。参加求职面试的时候问的问题,都是IT相关行业里重要的知识点,对于相关项目开发具有重要意义。因此,如果在面试的时候遇到不会的问题,面试结束之后,一定要通过不同方式,去获得答案。这也是一个学习的很好机会。否则,下次再遇到,如果还不会,机会就又错过了。
 
三、身体管理能力
有一句话说得很好:一个人的身体健康是1,而财富、感情、事业,家庭……,都是1后面的0,只有依附于这个1,零的存在才会有意义,如果没了这个1,那么一切都将不存在。

IT行业是一个压力大,加班多的行业。因此如果身体不行,很容易出严重的问题。大家也经常在新闻里看到IT领域很多工程师甚至是创始人过劳猝死的例子。因此,一个好的身体,相当重要。

20几岁是人生的黄金阶段,一般病痛不会找上门。但是一旦过了30岁,尤其是35岁之后,就是病找人了。
 


1、健康饮食


健康饮食,对身体健康非常重要。一日三餐,规律饮食,均衡营养合理搭配肉食和蔬菜水果,细嚼慢咽降低胃肠道压力,不吃过烫食物,同时节制饮食,吃什么都最好控制食量,做到7分饱,尤其是晚餐,宁饿不撑,以免加重胃的负担。因此,健康,从管住这张嘴开始。
 
 


2、规律作息


所谓规律作息,最重要的就是别熬夜。尤其是过了30岁之后,每天要保证8个小时的睡眠时间,因此一定要在零点前上床休息。熬夜对身体的伤害非常大,因为这样会让身体器官,尤其是心脏处于全负荷下工作,得不到休息,那么容易造成心脏等罢工从而发生猝死。
 


3、适当锻炼


工作之余,适当的运动和锻炼,是非常有利于身体健康的。比如饭后百步走,游泳,爬山,跑步、打球等等。
 
 


4、定期体检


每年做一到二次身体健康体检,对胃,肝,肾,心脏,结、直肠,肺,血液血脂等进行全面检查,甚至过了一定年龄(比如35岁之后)需要加上胃镜和肠镜的检查对肺进行低剂量CT检查, 及早发现身体不适或者出现三高(高血压、高血脂、高血糖,是对动脉硬化,脑溢血,冠心病的潜在威胁),将大病遏制在摇篮中,排除身体中的各种定时炸弹。
 
 
四、情绪管理能力
情绪管理能力是一个人在情商方面最重要的体现。一个人,只有在能控制自己的各种情绪之后,才能体现出一个高情商的人。有一句说得好,人永远需要两种能力:好好说话和情绪稳定。
 


1、放下自尊心


“世上最肮脏的,莫过于自尊心”--尤瑟纳尔。社会上处久了,才发现自尊心分明就是面皮薄、意志弱,受不起挫折,经不起摔打的代名词。自尊心是颗种子,捧在手上只能枯死,非得踩进泥土,从磨难中汲取养料,成长,成熟。在没有足够的实力前,请勿过分强调你的自尊心。遇到自尊心受到伤害了,一定要善于自我解嘲,知耻而后勇。 

阿里高管彭蕾曾说过:不管别人怎么赞扬你也好,或者羞辱你也好,你内心知道你自己是谁,自己内心是很定的,无论是捧你还是打你,外界的状况都不会伤害到你,这才是真正皮实的状态。对于创业者或者我们组建团队的时候,这个能力蛮重要的。
 


2、远离垃圾人


生活中,我们难免会遇到各种“垃圾人”。他们到处跑来跑去,身上充满了负面垃圾:充满了沮丧、愤怒、忌妒、算计、仇恨,充满了傲慢与偏见、贪心不满足、抱怨、比较,充满了见不得人好、愚昧、无知、烦恼、报复、和充满了失望。随着心中的垃圾堆积又堆积,他们终需找个地方倾倒;有时候,我们刚好碰上了,垃圾就往我们身上丢。 所以,无须介意。只要微笑、挥挥手、远离他们,然后继续走我们自己的路就行。绝对不让垃圾人接管自己生活当中的任何一天。人生短暂,绝对不要浪费心思和精力在这些事上。

千万不能和垃圾人吵起来,甚至大打出手,最后受苦的还是自己,不值得。一物降一物,垃圾人肯定会遇到更狠的人对付他,但与我们无关。有一句话说得好:人给狗让路,不丢人。
 


3、与人为善,与人遇到矛盾,友好的建设性的解决问题


远离垃圾人的同时,也要防止自己成为别人眼中的垃圾人。所以,一定要做到与人为善,尊重对方,客气友好。与人遇到矛盾和问题,一定不要动不动就口出恶言,要友好的建设性的解决问题,起码也得先礼后兵,因为很多后果严重的事件都始于一两句恶语激怒了彼此。千万不要一开始就把问题发展到不可收拾的地步。 

关于互相尊重:“尊重上级是天职;尊重下属是美德;尊重同事是本份;尊重客户是常识;而尊重所有人则是教养。”我们每一个人都要做到这一点,因为尊重他人是良好沟通的基础,而且尊重他人就是尊重自己。 

关于发脾气:把脾气发出来,那叫本能;把脾气压下去,那叫本事。有时候把脾气发出来,发的不是脾气,发的是代价。
 


4、忍一忍,冲动是魔鬼


忍,不是叫你逆来顺受,而是用更好的办法解决问题,不是动不动就两败俱伤。某人惹你生气了,即使你恨不得马上给他一耳光,也要让子弹飞了一会儿。如果过了一晚上,你还是想给他一耳光,那就再想办法,但往往一个晚上后,你改变了主意。不全是忍了,而是想到了更好的解决办法。

同样,凡是有什么想法,尤其是大事情,千万不要冲动决定。在工作中受到了一点小委屈,也不要立即冲动说不干了(最后你会发现,在哪里工作都会有受气的时候)。

大事急事做决定一定要缓一缓,冲动依然会付出代价。有一句说得很好:大事要细办,小事要认真办,急事要缓办。急事宜缓办,忙则多错。说干就干有的时候是执行力的体现,但有时候是冲动的体现,需要仔细辨别。
 


5、不做愤青


马云曾经说过:10年前我更关心全世界,结果日子过得非常艰难;5年前我很关心中国的命运,我也过得很艰难;3年前开始我只关心公司,我的日子开始好起来。现在我只关心自己,越来越好。所以我说,关心好自己,每个人把自己喜欢的事做好,这个世界会好起来,别像奥巴马一样关心全世界。

社会总会存在各种不公,因此,你不要因为你的愤怒而耽误了你自己的行动。首先从改变自己开始,然后就能改变周围的人,再能改变自己的家乡,然后就能改变整个世界。否则,人微言轻,吃着地沟油的命,操着中南海的心,你说了,你愤怒了,但是都不算。
 


6、养成记日记的习惯


 
写日记有很多好处。可以在日记里反省,总结和规划未来,调整自己的心态。日记是一种很好的自我调节的手段。假如人是一颗飞向目标的火箭,那么日记有点修正你跑偏方向的功能。很多成功人士,都有记录日记的习惯。日记不用天天记,需要反省,总结和规划的时候就可以写一写,写的篇幅可长可短。写完之后,可以定期回看一下曾经写的日记,也是一笔宝贵的经历。因为日记里写的都是自己真实的想法和内心,有的东西可能无法让外人直视,所以请注意做好对日记的保密工作。
 


7、讨论可以,但不与人争论(辩论)


正如上面所说,遇到各种不同观点,可以与人理性讨论,但千万不要做这些无意义的争吵和争论,辩论,更不要想着把自己的观点强加于人,没有意义,对你也没有任何好处,反而浪费了你的大量时间,影响了你的好心情。有一句话说得好,世界上有两件事最难,一是把自己的思想装进别人的脑袋里;二是把别人的钱装进自己的口袋里。 人观点和思想的改变不是靠争论,主要是靠亲身经历,吃过亏上过当了,才会痛彻心扉,更何况有时候我们自己的观点未必就是对的。 随着时间的增长,我们也会不断修正自己的观点和看法。所以,请从现在开始,在与人相处的时候,用友好的态度去探讨问题,拒绝争论或者争吵,谁也别想说服谁,即使说服了谁也是口服心不服,即使心服了也没有任何意义,少说多做多思考,管住自己这张嘴。有一个关于孔子与子贡关于“三季人”的故事,可以很好的说明这个问题:

早晨,子贡在大院门口打扫院子。有人来到,问子贡:“您是孔子吗?” 子贡答道:“有什么事需要向我们老师请教?” “我想请教关于时间的问题?” “这个问题我知道,可以回答你” “那你说说一年有几季?” “四季。”子贡笑答。 “不对,一年只有三季!” “四季!!” “三季!!” “四季!!!”子贡理直气壮。 “三季!!!”来人毫不示弱。然后就争论不止,一直争论到中午也没消停。

孔子听到声音,从院内出来,子贡上前讲明原委,让孔子评定。孔子先是不答,观察一阵后说:“一年的确只有三季。“ 来人听此,大笑而去。

待来人走后,子贡忙问老师:“这与您所教有别啊,且一年的确有四季啊! “这一年到底应是几季?”

孔子答:“四季” ,子贡不解。

孔子继而说道:“这时和刚才不同,方才那人一身绿衣。他分明是田间的蚱蜢。蚱蜢者,春天生,秋天亡,一生只经历过春、夏、秋三季,哪里见过冬天?所以在他的思维里,根本就没有‘冬季’这个概念。你跟这样的人那就是争上三天三夜也不会有结果的。你若不顺着他说,他能这么爽快就走吗?你虽然上了个小当,但却学到了莫大一个乖。” 说完,子贡立刻明白了。
 
五、深度思考的能力
有的人看起来也很勤奋,每天也都勤勤恳恳的工作学习和生活,但始终无法向前获得更大的成功。而有的人,平时也不怎么太努力工作,也不怎么太努力学习,却最后过得很好。你在每天挤公交地铁上班,没准人家已经在旅行的路上,在朋友圈晒世界各地的蓝天白云。这是为什么呢?不是说了越努力越幸运吗?

实际上这里有一个战术上的勤奋和战略上的勤奋(思考)的差别。

每天除了完成日常的工作,生活和学习任务,也需要花一点时间来反省过去,总结经验,不断分析现在的问题,找到答案,纠正,思考规划未来,保持方向的正确。

人生是一场持久战和长跑,随时都有机会弯道超车。试着深度思考,永远不要用战术上的勤奋掩盖战略上的懒惰。否则,你每天的忙碌,也无法忙碌出一个精彩的人生。

人生中有些事情,宜早规划早执行。以北京的房价和限车牌限号就是个非常典型的例子。后办者非常被动。

此外,除了工作之外,应该发展一个第二职业或者兼职,能够通过第二职业获得额外的收入,以应对第一职业的35岁现象。第二职业可以是投资(炒股,买房等,但风险较大需要慎重,但高风险意味着高收入。第一次炒股一定要用小本投入,因为第一次一般都会亏,小本当交学费不心疼),也可以去兼职,也可以写书,去当培训老师或者哪怕是开淘宝,摆地摊。总之,一定要趁年轻,多找事做。
 
六、遏制错误的能力
每个人都会犯错误。但是,我们应该拥有高度的责任来遏制错误的发生,因为错误一旦发生,就意味着会有代价或者损失,有的损失或者代价甚至是巨大而不可挽回的。
 


1、堵住逻辑漏洞


做事情的时候,要符合逻辑和一定的流程,不能有任何疏忽。把该考虑的因素都必须考虑进来,不能相信口头承诺。在处理文字或者签订合同的时候,也要严谨, 不能有漏洞,要善于使用不同的方法(比如提前调查各种背景,提前向自己的亲戚朋友征询意见和建议(个人的认识和经历总有局限性,因此一定要参考大家的意见))发现其中的坑,然后及早提出问题,先小人后君子。否则,问题就会越来越大,错误会越来越严重。
 
 


2、克服粗心,反复检查


有一类错误,是因为粗心大意造成的,这类错误最好克服。方法就是:反复检查。比如你发一条短信,发一封邮件给领导,里面由于粗心可能会出现各种错别字。但是,只要你态度认真,打完字之后,再仔细看过检查一两遍,这种问题就会解决。
 


3、预判并解决存在的问题,防患于未然


有时候,错误是可以预测到的,那么这个时候为了防止错误的发生,请立即采取措施解除错误的隐患。比如你看到电脑旁边有一杯水,你应该会预测到这杯水可能会不小心被碰倒洒到电脑上,造成电脑故障。那么一旦预判到这个错误可能发生之后,立即采取行动,把这杯水喝掉或者移开到安全地方,就可以完全预防可能发生的错误。 

孔子曰”君子不立于危墙之下”,君子要远离危险的地方。这包括两方面:一是防患于未然,预先觉察潜在的危险,并采取防范措施;二是一旦发现自己处于危险境地,要及时离开。
 


4、遵守规则,程序


遵守社会中指定的规则,流程,和程序,可以防止错误的发生。社会中的规则是这个社会平安健康运行的一套科学总结,不可违规,否则会造成严重的错误和不可挽回的损失。比如不要酒后驾车,不要闯红灯,比如乘车前先要进行安检,比如医院的“一人一管一抛弃”,甚至进入野生动物园不要下车,这些都是一些常见的社会规则,流程,不可打破。要有敬畏之心,严格遵守,否则就会出现各种严重的车祸,恐怖袭击,医疗事故,危及生命安全造成严重后果。
 
七、学会拒绝的能力
有的时候,大家由于年轻,缺乏足够的社会经验,对于别人提出的非分要求(比如借钱),碍于情面,不好意思拒绝,硬着头皮答应,结果非常被动,甚至给自己带来严重后果。

这里给大家的一句话就是:别不好意思拒绝别人,反正那些好意思为难你的人都不是什么好人。因此,对于别人提的一些要求,仔细分析是否为过分要求,如果是过分要求,我们应该要敢于拒绝,善于拒绝。
 
转载分享阅读:http://mallocfree.com/basic/c/eq.htm 

深度解析Intel CPU漏洞为何如此恐怖?

OT学习平台 发表了文章 • 0 个评论 • 1299 次浏览 • 2018-01-31 14:47 • 来自相关话题

作为2018年IT互联网界的首个大新闻,这次被曝出的芯片级漏洞波及范围之广、程度之深是我们始料未及的,而位于漩涡中心的Intel扮演的是一个相当重要但又有些尴尬的角色。


据悉,Meltdown和Spectre这两个漏洞可以绕过内存访问的安全隔离机制,使用恶意程序来获取操作系统和其他程序的被保护数据,造成内存敏感信息泄露。

事件的起点是Intel市售处理器被爆出因为设计的缺漏,会造成原本普通的程序却可以拥有前所未有的高权限,甚至可以直接访问核心内存当中的数据,这对于用户隐私和设备安全无疑是多年来前所未有的噩梦。

[深度解析Intel CPU漏洞为何如此恐怖]

这次的漏洞之所以备受关注,是因为这些漏洞能让恶意程序获取核心内存里存储的敏感内容,比如能导致黑客访问到个人电脑的内存数据,包括用户账号密码、应用程序文件、文件缓存等。

此次两组漏洞拥有内核级别的高权限,潜在的危害性、影响的广阔性、解决的棘手性都始料未及。

此次事件还带来了哪些严重影响?针对此次漏洞应如何及时补救?关注2月2日14:00“深度解析Intel CPU漏洞为何如此恐怖”直播活动,元鼎科技资深安全大咖王国斌为您指点迷津。


直播间入口:http://www.otpub.com/home/live/liveinfo/liveid/10117.html 查看全部
作为2018年IT互联网界的首个大新闻,这次被曝出的芯片级漏洞波及范围之广、程度之深是我们始料未及的,而位于漩涡中心的Intel扮演的是一个相当重要但又有些尴尬的角色。


据悉,Meltdown和Spectre这两个漏洞可以绕过内存访问的安全隔离机制,使用恶意程序来获取操作系统和其他程序的被保护数据,造成内存敏感信息泄露。

事件的起点是Intel市售处理器被爆出因为设计的缺漏,会造成原本普通的程序却可以拥有前所未有的高权限,甚至可以直接访问核心内存当中的数据,这对于用户隐私和设备安全无疑是多年来前所未有的噩梦。

[深度解析Intel CPU漏洞为何如此恐怖]

这次的漏洞之所以备受关注,是因为这些漏洞能让恶意程序获取核心内存里存储的敏感内容,比如能导致黑客访问到个人电脑的内存数据,包括用户账号密码、应用程序文件、文件缓存等。

此次两组漏洞拥有内核级别的高权限,潜在的危害性、影响的广阔性、解决的棘手性都始料未及。

此次事件还带来了哪些严重影响?针对此次漏洞应如何及时补救?关注2月2日14:00“深度解析Intel CPU漏洞为何如此恐怖”直播活动,元鼎科技资深安全大咖王国斌为您指点迷津。


直播间入口:http://www.otpub.com/home/live/liveinfo/liveid/10117.html

分享Python基础入门到精通视频教程5套

alber1986 发表了文章 • 0 个评论 • 1566 次浏览 • 2017-12-16 11:32 • 来自相关话题

 
分享Python基础入门到精通视频教程5套:
第一套:Python14期VIP视频
第二套 python全栈开发工程师1期
第三套 2017年老男孩全栈第二期103天完整
第四套 Python视频课程就业班
第五套 Python自动化开发12期完整版
http://www.sucaihuo.com/video/194.html 查看全部

 
分享Python基础入门到精通视频教程5套:
第一套:Python14期VIP视频
第二套 python全栈开发工程师1期
第三套 2017年老男孩全栈第二期103天完整
第四套 Python视频课程就业班
第五套 Python自动化开发12期完整版
http://www.sucaihuo.com/video/194.html