I work at a Japanese software company, and when I started there, I experienced much of the same feeling that you did--I knew all of these technical terms in English, and I thought that I spoke Japanese fluently, but I didn't know any of these terms in Japanese, so I felt very much at a loss when communicating about technical topics.
A lot of it I've just picked up as I've gotten more experienced, so I can't really recommend any good books for non-native speakers; I read lots of resources written in Japanese for Japanese people, but very few if any helpful resources written in English. I think you may have to stick to native language resources for the majority of your learning. (Hopefully you've reached the point in your Japanese where this isn't a problem for you to do.) Also, you should know that while technical people in Japanese have a firm grasp of this sort of vocabulary, your average, non-technical speaker of Japanese might be a lot more comfortable with your roundabout rephrasings than they would be with the more technical and efficient ways of stating things.
Don't know if it helps, but a while back I made a short vocabulary list for a friend of mine who was studying for a Japanese-speaking programming job. It's not very complete, but if you'd like some vocabulary to study, here it is. The words are pretty programming-specific.
引数{ひきすう}: argument (i.e., to a function)
返り値{かえりち}: return value
関数{かんすう}: function
構造体{こうぞうたい}: data structure
保存{ほぞん}する: to save, to store
割り込み{わりこみ}: interrupt
状態{じょうたい}: status
画像{がぞう}: image
復元{ふくげん}する: to restore
アルゴリズム: algorithm
処理{しょり}: processing (very common word)
終了{しゅうりょう}する: to end; to be finalized
書き換える{かきかえる}: to overwrite
呼び出す{よびだす}: to call (as in, calling a function)
実装{じっそう}する: to implement
自動的{じどうてき}: automatically
プログラムを組む{くむ}: to write a program
明示的{めいじてき}に: explicitly
黙示的{もくしてき}に: implicitly
ポインタ: pointer
テーブル: table
変換{へんかん}する: to convert
割り込み{わりこみ}禁止{きんし}: interrupts prohibited
対応{たいおう}する: to support (as in "this language supports dynamic memory allocation")
概要{がいよう}: overview
値{あたい}: value
固定{こてい}: static, fixed
動的{どうてき}: dynamic
同期{どうき}関数{かんすう}: synchronous function
非同期{ひどうき}関数{かんすう}: asynchronous function
調節{ちょうせつ}する: to adjust
計算{けいさん}結果{けっか}: result of calculation
割り当て{わりあて}: allocation
設定{せってい}: settings
設定{せってい}する: to set, to configure
配列{はいれつ}: array
登録{とうろく}する: to register
For reading, I recommend reading programming books directed towards Japanese people, or if those are too tough, just introductory books and articles for Japanese people. There are so many older people in Japan who are still just now getting into computers that there should be no end of introductory books at your local library or Book-Off.