Not sure if one should favour 4 years in theory or 4 years in relevant work, for a programming position. For research, yes absolutely as it is straight carryover.
Not sure why I got down voted. A quick google search will reveal my comment is factual. At least in Canada where I'm from.
https://archive.org/stream/TNVisaForSystemsAnalystsVsProgram...
"Many people do not realise that computer programmers do not qualify under the TN Visa"
http://peo.on.ca/index.php/ci_id/2057/la_id/1.htm
"meet PEO's stipulated academic requirements for licensure (hold an undergraduate engineering degree from a Canadian Engineering Accreditation board (CEAB)-accredited program, or possess equivalent qualifications), and, if required, successfully complete any technical exams."