如何快速融入新公司

  • 2019 年 10 月 11 日
  • 筆記

一個人的職業生涯中,換幾家公司,跳幾次槽是很正常的事情。進入新公司後,幾乎都有一個適應期。而且很多公司根本不會給太多的適應期,幾乎就是要立即挑重擔的。

在面對新的環境,新的崗位,新的挑戰,大家難免都會有焦慮和不適應, 怎麼快速度過這個適應期,迅速調整自己的心態和狀態來適應新的挑戰。這裡從軟實力和硬實力兩方面來探討。

軟實力:多跟大家交流。

有人的地方就有江湖,很多程式設計師不善於交際,但是人在江湖,身不由己。良好的人際關係是做好任何事情的前提。 入職第一天,和同事打過招呼後,要用心記住他們的名字,下次見面,主動打招呼的時候,先叫名字,對方會感受到你對他的尊重和關注,會對你的印象深刻,好感度也直線上升。 多參加一些團體活動,盡量和大家一起吃飯,可以很快的建立起同事間的情感。你可以想辦法多和老員工聊聊天,去了解一下公司的人事結構、業務情況等。這也許可以從側面了解一些人。可以不搞辦公室政治,但是也避免別拉下水。 不管是否工作交集有多少,都要學會微笑示人,微笑是化解人和人之間的距離感的最佳武器。

保持一個謙虛學習的心態 到了新環境中,你不知道的資訊太多,判斷失誤大有可能。 不要自我感覺過於良好,覺得自己超厲害,覺得周圍的人都能力平平。聰明的人都懂得韜光養晦,能看清自己的位置,擺正自己的心態。 如果所以自視過高,缺少敬畏之心。當這種潛意識存在的時候,你一定會在各種事情的細節中體現出來,總有一天會栽大跟頭。職場中最忌諱就是貶低別人來抬高自己。

少一些抱怨,多一些行動 沒有公司是完美的。小公司,大公司,都有一堆噁心的程式碼,過時的文檔,不盡人意的流程。進入到一個新團隊後,不要跟大家抱怨。就算你說得十二分的正確,別人只能把你的善意提醒,當成是負面能量,沒有人會主動去改變什麼,特別不是份內的事情的時候。如果你能在完成自己本分的事情之餘,能將一些事情弄完美,也許會有人看見。

認真完成每一個任務,不要貪多求快 如其把三件事情做到70分,不如把一件事情做到90分,甚至100分。你個人的自信和別人對你的信任,是建立在一個又一個高分任務的基礎上的。每個分配到手的任務,你都能做到超出預期,那每個任務都能增加你leader, 周圍同事對你的信任,增強你的口碑。反之,每件事情,都只做到及格線,就給大家留下不靠譜的印象了。

硬實力:專業能力

專業是職場的通行證,任何時候,專業能力強,是讓你能融入一個團隊的必備要素。入職新工作,你能快速掌握崗位的基本要求,能快速了解公司的產品種類,一切工作都能快速上手。當你發現自己不熟悉公司的技術棧時,得自己想辦法補起來。如果發現自己的不足,努力追趕。

快速熟悉產品

為了快速的融入產品研發,需要自己從宏觀和微觀去把控產品或項目。產品的基本功能,有什麼功能,達到什麼目的,現在好壞,沒事的時候,自己多體驗一下產品,多看看原型圖,設計稿。疑惑的地方,可以先記下來,說不定後面就迎刃而解。

快速熟悉流程和架構

可以通過文檔或者同事交流,逐漸了解一些組織架構,跟你工作交接的人,他們的角色,脾氣和秉性。 產品開發流程,測試流程以及上線流程,是否是敏捷開發模式,迭代周期,是否A/B testing等。 例如: a.開發工具 b.開發環境、調試環境、測試環境(公司的開發伺服器、調試伺服器); c.編程規範以及產品開發要求 d.相關文檔; e.源碼管理工具等;

了解軟體系統框架。

系統是集中式系統,還是分散式系統? 是否用了微服務? 用的是何種資料庫系統? 介面服務用的是何種組件? 快取系統用的是redis還是memchache? 消息隊列實現方式 如何實現性能和日誌監控? 如何實現伺服器的調度和管理?

了解業務

在做設計研發,不了解業務,很多時候是沒法開展工作的。如果業務複雜,也沒有文檔,而且沒有人給你講解,怎麼辦?只能自己摸索了。

了解業務的的好的方法,是了解介面和資料庫,不管何種業務,大部分是要調用介面,存儲數據的。下面就從sqlserver以及mysql來嘗試去了解業務了。

先看sql server

也許我們知道某個模組或者某個業務,常聽人討論某個業務的名字,我們可以簡單去資料庫里查詢業務對應的表。 模糊查詢表的名字

SELECT * FROM sys.objects WHERE name LIKE '%Members%' AND type = 'U'  select name from sys.objects where type='U' and name like '%session%'

然後我們去看看庫, 查詢表在哪個庫中

declare @tableName nvarchar(255),@sql nvarchar(1000)  set @tableName=N'MemberSession'  set @sql=N'use ? if exists(select 1 from sysobjects where id=object_id('''+@tableName+''')) print ''?'''  exec sp_msforeachdb @sql

查詢庫的資訊

查詢有哪些庫  SELECT Name FROM Master..SysDatabases ORDER BY Name  查詢某個庫中有哪些表:  SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'    SELECT * FROM INFORMATION_SCHEMA.TABLES    某個庫中的表資訊  SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID('Members')    SELECT * FROM INFORMATION_SCHEMA.TABLES    SELECT * FROM INFORMATION_SCHEMA.VIEWS    SELECT * FROM INFORMATION_SCHEMA.COLUMNS

如果知道一個欄位,但是不記得在哪個表中, 可以用以下查詢欄位在哪些表中

SELECT b.name as TableName,a.name as columnname  From syscolumns a  INNER JOIN sysobjects b ON a.id=b.id  where b.type='U'  AND a.name='memberid'

查詢表有哪些欄位:

  最簡單:  Select Name FROM SysColumns Where id=Object_Id('Main.dbo.Members')  簡單:  USE ET_Main  SELECT syscolumns.name,systypes.name,syscolumns.isnullable, syscolumns.length  FROM syscolumns, systypes  WHERE syscolumns.xusertype = systypes.xusertype  AND syscolumns.id = object_id('Members')    複雜:  USE ET_Main  DECLARE @tableName NVARCHAR(MAX);  SET @tableName = N'Members'; --表的名字!!!    SELECT CASE             WHEN col.colorder = 1 THEN                 obj.name             ELSE                 ''         END AS 表名,         col.colorder AS 序號,         col.name AS 列名,         ISNULL(ep.[value], '') AS 列說明,         t.name AS 數據類型,         col.length AS 長度,         ISNULL(COLUMNPROPERTY(col.id, col.name, 'Scale'), 0) AS 小數位數,         CASE             WHEN COLUMNPROPERTY(col.id, col.name, 'IsIdentity') = 1 THEN                 '√'             ELSE                 ''         END AS 標識,         CASE             WHEN EXISTS                  (                      SELECT 1                      FROM dbo.sysindexes si                          INNER JOIN dbo.sysindexkeys sik                              ON si.id = sik.id                                 AND si.indid = sik.indid                          INNER JOIN dbo.syscolumns sc                              ON sc.id = sik.id                                 AND sc.colid = sik.colid                          INNER JOIN dbo.sysobjects so                              ON so.name = si.name                                 AND so.xtype = 'PK'                      WHERE sc.id = col.id                            AND sc.colid = col.colid                  ) THEN                 '√'             ELSE                 ''         END AS 主鍵,         CASE             WHEN col.isnullable = 1 THEN                 '√'             ELSE                 ''         END AS 允許空,         ISNULL(comm.text, '') AS 默認值  FROM dbo.syscolumns col      LEFT JOIN dbo.systypes t          ON col.xtype = t.xusertype      INNER JOIN dbo.sysobjects obj          ON col.id = obj.id             AND obj.xtype = 'U'             AND obj.status >= 0      LEFT JOIN dbo.syscomments comm          ON col.cdefault = comm.id      LEFT JOIN sys.extended_properties ep          ON col.id = ep.major_id             AND col.colid = ep.minor_id             AND ep.name = 'MS_Description'      LEFT JOIN sys.extended_properties epTwo          ON obj.id = epTwo.major_id             AND epTwo.minor_id = 0             AND epTwo.name = 'MS_Description'  WHERE obj.name = @tableName --表名  ORDER BY col.colorder

查詢某個庫中,表的主鍵和外鍵被誰引用:

USE Oboe  SELECT 主表名=object_name(b.rkeyid)    ,主鍵列ID=b.rkey    ,主鍵列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid)    ,外鍵表ID=b.fkeyid    ,外鍵表名稱=object_name(b.fkeyid)    ,外鍵列ID=b.fkey    ,外鍵列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid)    ,級聯更新=ObjectProperty(a.id,'CnstIsUpdateCascade')    ,級聯刪除=ObjectProperty(a.id,'CnstIsDeleteCascade')    FROM sysobjects a    join sysforeignkeys b on a.id=b.constid    join sysobjects c on a.parent_obj=c.id

然後嘗試各種表的查詢,結合介面和產品,就可以慢慢熟悉一些業務了。

如果是在mysql中: 一、簡單描述表結構,欄位類型

desc tabl_name;

顯示錶結構,欄位類型,主鍵,是否為空等屬性,但不顯示外鍵。 二、查詢表中列的注釋資訊

select * from information_schema.columns  where table_schema = 'db' #表所在資料庫  and table_name = 'tablename' ; #你要查的表

三、查詢列名和注釋

select column_name, column_comment from information_schema.columns where table_schema ='db' and table_name = 'tablename' ;  

四、查看錶的注釋

select table_name,table_comment from information_schema.tables where table_schema = 'db' and table_name ='tablename'  

五、查看錶生成的DDL

show create table table_name;

六、查詢庫下所有的表名

SELECT table_name FROM information_schema.tables WHERE table_schema='庫名'

七、模糊表名查詢

SELECT table_name FROM information_schema.tables WHERE table_schema='庫名' AND table_name LIKE '表名前綴%'  
查看當前使用的資料庫 select database();  查看資料庫使用埠: show variables like 'port';  查看資料庫編碼: show variables like 'character%';  查看資料庫的所有用戶資訊: select distinct concat('user: ''',user,'''@''',host,''';') as query from mysql.user;  查看某個具體用戶的許可權: show grants for 'root'@'localhost';  查看資料庫的最大連接數: show variables like '%max_connections%';  查看當前打開的連接的數量: show status like 'threads_connected';  查看資料庫當前連接並發數: show status like 'Threads%';  查看數據文件存放路徑: show variables like '%datadir%';  複製表結構:create table table1 like table;  複製數據:insert into table1 select * from table

機器授權:

grant select on . to 'reader'@'%' identified by '123456' WITH GRANT OPTION  flush privileges

修改表結構

alter table competitor_goods add sku_id bigint(20) unsigned DEFAULT NULL COMMENT '商品銷售碼';
SHOW DATABASES                                //列出 MySQL Server 資料庫。  SHOW TABLES [FROM db_name]                    //列出資料庫數據表。  SHOW TABLE STATUS [FROM db_name]              //列出數據表及表狀態資訊。  SHOW COLUMNS FROM tbl_name [FROM db_name]     //列出資料表欄位  SHOW FIELDS FROM tbl_name [FROM db_name],DESCRIBE tbl_name [col_name]。  SHOW FULL COLUMNS FROM tbl_name [FROM db_name]//列出欄位及詳情  SHOW FULL FIELDS FROM tbl_name [FROM db_name] //列出欄位完整屬性  SHOW INDEX FROM tbl_name [FROM db_name]       //列出表索引。  SHOW STATUS                                  //列出 DB Server 狀態。  SHOW VARIABLES                               //列出 MySQL 系統環境變數。  SHOW PROCESSLIST                             //列出執行命令。  SHOW GRANTS FOR user                         //列出某用戶許可權  

業務如果複雜,不是一朝一夕的就能掌握的,如果工作中常常有意識的去思考一下,結合自己的實踐,多看看介面,多查查資料庫。跟同事多交流,慢慢的,也會對業務有所了解了。

融入一個新的團隊中時,肯定會遇到很多困難,如果有人交流,那是最好不過的了。如果沒有,唯有自己不斷的學習和實踐,才能不斷提高。

來源微信公眾號:python愛好部落